constructor: ScrollSpy
, refresh: function () {
- this.targets = this.$body
+ var self = this
+ , $targets
+
+ this.offsets = []
+ this.targets = []
+
+ $targets = this.$body
.find(this.selector)
.map(function () {
var href = $(this).attr('href')
- return /^#\w/.test(href) && $(href).length ? href : null
+ return /^#\w/.test(href)
+ && $(href).length
+ && [[ $(href).position().top, href ]]
+ })
+ .sort(function (a, b) { return a[0] - b[0] })
+ .each(function () {
+ self.offsets.push(this[0])
+ self.targets.push(this[1])
})
-
- this.offsets = $.map(this.targets, function (id) {
- return $(id).position().top
- })
}
, process: function () {
constructor: ScrollSpy
, refresh: function () {
- this.targets = this.$body
+ var self = this
+ , $targets
+
+ this.offsets = []
+ this.targets = []
+
+ $targets = this.$body
.find(this.selector)
.map(function () {
var href = $(this).attr('href')
- return /^#\w/.test(href) && $(href).length ? href : null
+ return /^#\w/.test(href)
+ && $(href).length
+ && [[ $(href).position().top, href ]]
+ })
+ .sort(function (a, b) { return a[0] - b[0] })
+ .each(function () {
+ self.offsets.push(this[0])
+ self.targets.push(this[1])
})
-
- this.offsets = $.map(this.targets, function (id) {
- return $(id).position().top
- })
}
, process: function () {