10

我正在使用http://imakewebthings.com/jquery-waypoints,当用户向下滚动到带有类的区域时,我需要执行一些操作div1。但是,我只需要它触发一次,而不是每次用户滚动到该位置时。——只有一次

$('.div1').waypoint(function(direction) 
{
    alert(CARRY OUT MY ACTION);
});

这只需要在第一次滚动到该部分时发生——向上或向下。

4

4 回答 4

30

triggerOnce()替换为destroy()。只需添加this.destroy().

$('.div1').waypoint(function(direction){
    alert('CARRY OUT MY ACTION')
    this.destroy()
});

有关更多选项,请查看Waypoints 的 API

于 2015-06-08T13:38:02.390 回答
14

如果将第二个参数传递给waypoint()函数,则可以包含配置选项对象。将该triggerOnce选项设置为 true 将使插件按照您想要的方式运行。

$('.div1').waypoint(function(direction) 
{
    alert('CARRY OUT MY ACTION');
},  
{ 
    triggerOnce: true 
});
于 2013-04-14T17:51:28.327 回答
1

在新的 API 中,似乎没有 triggerOnce 选项了,但仍然可以使用waypoint.disable()第一次调用后的方法

于 2015-05-18T10:37:04.353 回答
0

答案是this.destroy()在处理函数的末尾使用。这是一个可行的示例:

$('.div1').waypoint(function(direction){

    handler: function(direction) {

        alert('CARRY OUT MY ACTION');

        this.destroy();

    }

});

另请参阅waypoint.destroy()文档。

于 2019-09-12T19:32:04.020 回答