diff options
| author | Caden Lovelace <[email protected]> | 2015-01-17 01:14:22 +0000 |
|---|---|---|
| committer | Caden Lovelace <[email protected]> | 2015-03-01 23:55:39 +0000 |
| commit | a1aa0f8afdc33403604e5415aed649e605e93efd (patch) | |
| tree | d6c7ae0b3cff6fa7880b038feb2b55cf6ad6b1ef /js/scrollspy.js | |
| parent | 984204c39e00d267f49c39d100d0ac2aab8dae9c (diff) | |
| download | bootstrap-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.js | 2 |
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]) } } |
