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

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

我正在将我的代码从 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 版本。我像这样绑定我的 waypoints:

$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),
    });

原来是waypoints的分组问题。 .previous() 航路点,不计入分组,按文档顺序出现在当前航路点之后。一旦我将组添加到 waypoints,.previous().next() 就按预期工作了。