我将代码从jQuery-waypoints 2.x升级到4.x,并确定了与this.previous()
相关的奇怪行为。我发现在正确时间触发的处理程序中,this.element
是正确的。但是,this.previous().element
指向DOM中的下一个元素,其通路点,this.previous().previous().element
指向与this.element
相同的元素。我可以在代码中设置一个断点,并验证了this.previous().previous().element == this.element
。
我必须想象我在做一些非常错误的事情,或者这是一个错误。我正在使用v4.0.1,并且正在使用jQuery版本。我像这样绑定了我的路点:
$selector.waypoints(
function goingUp(direction) {
console.log(this.previous().previous().element == this.element); // true
console.log(this.next().previous().element == this.element); // true
}, {
offset: offsetCalculator(this),
});
问题被证明是航路点的分组。.previous()
Waypoint不计算分组,以文档顺序显示的时间比当前的路点出现。一旦我将小组添加到路点,.previous()
和.next()
就可以按预期工作。