我将代码从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),
});
答案 0 :(得分:1)
问题原来是航路点的分组。不计入分组的.previous()
航路点在文档顺序中出现的时间晚于当前航点。将小组添加到航点后,.previous()
和.next()
按预期工作。