aboutsummaryrefslogtreecommitdiff
path: root/js/scrollspy.js
diff options
context:
space:
mode:
authorCaden Lovelace <[email protected]>2015-01-17 01:14:22 +0000
committerCaden Lovelace <[email protected]>2015-03-01 23:55:39 +0000
commita1aa0f8afdc33403604e5415aed649e605e93efd (patch)
treed6c7ae0b3cff6fa7880b038feb2b55cf6ad6b1ef /js/scrollspy.js
parent984204c39e00d267f49c39d100d0ac2aab8dae9c (diff)
downloadbootstrap-a1aa0f8afdc33403604e5415aed649e605e93efd.tar.xz
bootstrap-a1aa0f8afdc33403604e5415aed649e605e93efd.zip
Handle multiple zero-offset Scrollspy elements.
When the first two elements in a scrollspy content block have a document offset of zero (i.e. they're hard against the top of the page), Scrollspy would switch between them on every scroll event. This could happen, for example, in a system of nested sections: ``` <section id="animals"> <section id="dogs"> Content </section> </section> ``` This ocurred because Scrollspy's check to see if it's at the end of the array of sections uses `!arr[index]`. This misses the case where `arr[index]` does exist and is zero. This commit explicitly checks the array bounds.
Diffstat (limited to 'js/scrollspy.js')
-rw-r--r--js/scrollspy.js2
1 files changed, 1 insertions, 1 deletions
diff --git a/js/scrollspy.js b/js/scrollspy.js
index a72bb5350..9b29edf49 100644
--- a/js/scrollspy.js
+++ b/js/scrollspy.js
@@ -96,7 +96,7 @@
for (i = offsets.length; i--;) {
activeTarget != targets[i]
&& scrollTop >= offsets[i]
- && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
+ && (offsets[i + 1] === undefined || scrollTop <= offsets[i + 1])
&& this.activate(targets[i])
}
}