aboutsummaryrefslogtreecommitdiff
path: root/js/src
diff options
context:
space:
mode:
authorJacob Thornton <[email protected]>2015-08-18 21:23:53 -0700
committerJacob Thornton <[email protected]>2015-08-18 21:23:53 -0700
commit4e45e2363c452e57d187cfd3c64cb0503b881a40 (patch)
treef1f359c9300fd539838214d928dc762d520727bb /js/src
parentfd65b9f32ef0aab74fc8ad9631fecccf0b843bf6 (diff)
parent1c19ded8c14cc9caca8ca2992834e2900dbbb4e5 (diff)
downloadbootstrap-4e45e2363c452e57d187cfd3c64cb0503b881a40.tar.xz
bootstrap-4e45e2363c452e57d187cfd3c64cb0503b881a40.zip
Merge branch 'v4' of github.com:twbs/derpstrap into v4
Diffstat (limited to 'js/src')
-rw-r--r--js/src/scrollspy.js36
1 files changed, 22 insertions, 14 deletions
diff --git a/js/src/scrollspy.js b/js/src/scrollspy.js
index 9476c46ce..27a91958e 100644
--- a/js/src/scrollspy.js
+++ b/js/src/scrollspy.js
@@ -43,18 +43,23 @@ const ScrollSpy = (($) => {
}
const ClassName = {
- DROPDOWN_TOGGLE : 'dropdown-toggle',
- DROPDOWN_ITEM : 'dropdown-item',
- DROPDOWN_MENU : 'dropdown-menu',
- ACTIVE : 'active'
+ DROPDOWN_ITEM : 'dropdown-item',
+ DROPDOWN_MENU : 'dropdown-menu',
+ NAV_LINK : 'nav-link',
+ NAV : 'nav',
+ ACTIVE : 'active'
}
const Selector = {
- DATA_SPY : '[data-spy="scroll"]',
- ACTIVE : '.active',
- LI_DROPDOWN : 'li.dropdown',
- NAV_LINKS : '.nav-link',
- DROPDOWN_ITEMS : '.dropdown-item'
+ DATA_SPY : '[data-spy="scroll"]',
+ ACTIVE : '.active',
+ LIST_ITEM : '.list-item',
+ LI : 'li',
+ LI_DROPDOWN : 'li.dropdown',
+ NAV_LINKS : '.nav-link',
+ DROPDOWN : '.dropdown',
+ DROPDOWN_ITEMS : '.dropdown-item',
+ DROPDOWN_TOGGLE : '.dropdown-toggle'
}
const OffsetMethod = {
@@ -237,22 +242,25 @@ const ScrollSpy = (($) => {
return `${selector}[data-target="${target}"],` +
`${selector}[href="${target}"]`
})
+
let $link = $(queries.join(','))
if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
- $link.parent().find(ClassName.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)
+ $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)
+ $link.addClass(ClassName.ACTIVE)
+ } else {
+ // todo (fat) this is kinda sus…
+ // recursively add actives to tested nav-links
+ $link.parents(Selector.LI).find(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)
}
- $link.addClass(ClassName.ACTIVE)
-
$(this._scrollElement).trigger(Event.ACTIVATE, {
relatedTarget: target
})
}
_clear() {
- debugger
- $(this._selector).filter(ClassName.ACTIVE).removeClass(Selector.ACTIVE)
+ $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)
}