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:
authorJohann-S <johann.servoire@gmail.com>2017-07-18 15:22:39 +0300
committerXhmikosR <xhmikosr@gmail.com>2017-08-11 15:04:07 +0300
commit2eb1e687bd74d147145000b3971821cc890d7652 (patch)
treedd1db86505af301e3816cfc89deb6c4e7fe20663 /js
parentedf90c1bc4ec7c081cdb891a7c10dfaf6b1832e7 (diff)
Improve previous selector for nested tabs
Diffstat (limited to 'js')
-rw-r--r--js/src/tab.js12
-rw-r--r--js/tests/unit/tab.js15
2 files changed, 18 insertions, 9 deletions
diff --git a/js/src/tab.js b/js/src/tab.js
index 5e5a83118d..4c30914951 100644
--- a/js/src/tab.js
+++ b/js/src/tab.js
@@ -45,6 +45,7 @@ const Tab = (($) => {
DROPDOWN : '.dropdown',
NAV_LIST_GROUP : '.nav, .list-group',
ACTIVE : '.active',
+ ACTIVE_UL : '> li > .active',
DATA_TOGGLE : '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
DROPDOWN_TOGGLE : '.dropdown-toggle',
DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'
@@ -87,7 +88,8 @@ const Tab = (($) => {
const selector = Util.getSelectorFromElement(this._element)
if (listElement) {
- previous = $.makeArray($(listElement).find(Selector.ACTIVE))
+ const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE
+ previous = $.makeArray($(listElement).find(itemSelector))
previous = previous[previous.length - 1]
}
@@ -148,7 +150,13 @@ const Tab = (($) => {
// private
_activate(element, container, callback) {
- const activeElements = callback ? $(container).children(Selector.ACTIVE) : $(container).find(Selector.ACTIVE)
+ let activeElements
+ if (container.nodeName === 'UL') {
+ activeElements = $(container).find(Selector.ACTIVE_UL)
+ } else {
+ activeElements = $(container).children(Selector.ACTIVE)
+ }
+
const active = activeElements[0]
const isTransitioning = callback
&& Util.supportsTransitionEnd()
diff --git a/js/tests/unit/tab.js b/js/tests/unit/tab.js
index 3a7c1bb785..6f52e4042f 100644
--- a/js/tests/unit/tab.js
+++ b/js/tests/unit/tab.js
@@ -182,13 +182,14 @@ $(function () {
assert.expect(2)
var done = assert.async()
- var dropHTML = '<ul class="drop nav">'
- + '<li class="dropdown"><a data-toggle="dropdown" href="#">1</a>'
- + '<ul class="dropdown-menu">'
- + '<li><a href="#1-1" data-toggle="tab">1-1</a></li>'
- + '<li><a href="#1-2" data-toggle="tab">1-2</a></li>'
- + '</ul>'
- + '</li>'
+ var dropHTML =
+ '<ul class="drop nav">'
+ + ' <li class="dropdown"><a data-toggle="dropdown" href="#">1</a>'
+ + ' <ul class="dropdown-menu nav">'
+ + ' <li><a href="#1-1" data-toggle="tab">1-1</a></li>'
+ + ' <li><a href="#1-2" data-toggle="tab">1-2</a></li>'
+ + ' </ul>'
+ + ' </li>'
+ '</ul>'
$(dropHTML)