Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorAlessandro Chitolina <alekitto@gmail.com>2017-11-25 18:07:41 +0300
committerJohann-S <johann.servoire@gmail.com>2017-11-26 22:29:19 +0300
commit80d4a51e79b951f11f61ed7a302d331b7942c920 (patch)
treec4256df1db7a7c4cd5ccb363e3bf9fed2715c476 /js
parent544b3ee954179f7cfbd25f8dd7894394ca834105 (diff)
tab.js: do not remove fade class if there's no initial active pane
Diffstat (limited to 'js')
-rw-r--r--js/src/tab.js18
-rw-r--r--js/tests/unit/tab.js33
2 files changed, 37 insertions, 14 deletions
diff --git a/js/src/tab.js b/js/src/tab.js
index 1d4178687d..e299f0b128 100644
--- a/js/src/tab.js
+++ b/js/src/tab.js
@@ -166,7 +166,6 @@ const Tab = (($) => {
const complete = () => this._transitionComplete(
element,
active,
- isTransitioning,
callback
)
@@ -174,19 +173,14 @@ const Tab = (($) => {
$(active)
.one(Util.TRANSITION_END, complete)
.emulateTransitionEnd(TRANSITION_DURATION)
-
} else {
complete()
}
-
- if (active) {
- $(active).removeClass(ClassName.SHOW)
- }
}
- _transitionComplete(element, active, isTransitioning, callback) {
+ _transitionComplete(element, active, callback) {
if (active) {
- $(active).removeClass(ClassName.ACTIVE)
+ $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)
const dropdownChild = $(active.parentNode).find(
Selector.DROPDOWN_ACTIVE_CHILD
@@ -206,12 +200,8 @@ const Tab = (($) => {
element.setAttribute('aria-selected', true)
}
- if (isTransitioning) {
- Util.reflow(element)
- $(element).addClass(ClassName.SHOW)
- } else {
- $(element).removeClass(ClassName.FADE)
- }
+ Util.reflow(element)
+ $(element).addClass(ClassName.SHOW)
if (element.parentNode &&
$(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
diff --git a/js/tests/unit/tab.js b/js/tests/unit/tab.js
index c26f076009..ee88bad305 100644
--- a/js/tests/unit/tab.js
+++ b/js/tests/unit/tab.js
@@ -382,4 +382,37 @@ $(function () {
})
.trigger($.Event('click'))
})
+
+ QUnit.test('should not remove fade class if no active pane is present', function (assert) {
+ assert.expect(6)
+ var done = assert.async()
+ var tabsHTML = '<ul class="nav nav-tabs" role="tablist">'
+ + '<li class="nav-item"><a id="tab-home" href="#home" class="nav-link" data-toggle="tab" role="tab">Home</a></li>'
+ + '<li class="nav-item"><a id="tab-profile" href="#profile" class="nav-link" data-toggle="tab" role="tab">Profile</a></li>'
+ + '</ul>'
+ + '<div class="tab-content">'
+ + '<div class="tab-pane fade" id="home" role="tabpanel"></div>'
+ + '<div class="tab-pane fade" id="profile" role="tabpanel"></div>'
+ + '</div>'
+
+
+ $(tabsHTML).appendTo('#qunit-fixture')
+ $('#tab-profile')
+ .on('shown.bs.tab', function () {
+ assert.ok($('#profile').hasClass('fade'))
+ assert.ok($('#profile').hasClass('show'))
+
+ $('#tab-home')
+ .on('shown.bs.tab', function () {
+ assert.ok($('#profile').hasClass('fade'))
+ assert.notOk($('#profile').hasClass('show'))
+ assert.ok($('#home').hasClass('fade'))
+ assert.ok($('#home').hasClass('show'))
+
+ done()
+ })
+ .trigger($.Event('click'))
+ })
+ .trigger($.Event('click'))
+ })
})