`this.previous()。previous()。element == this.element`?

时间:2018-04-26 21:12:22

标签: jquery-waypoints

我将代码从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),
    });

1 个答案:

答案 0 :(得分:1)

问题原来是航路点的分组。不计入分组的.previous()航路点在文档顺序中出现的时间晚于当前航点。将小组添加到航点后,.previous().next()按预期工作。