jQuery Waypoints Fire Once

送分小仙女□ 提交于 2019-12-06 23:43:30

问题


I am using http://imakewebthings.com/jquery-waypoints and I need to do some action when the user scrolls down to the area with the class div1. However, I need it only fire once and not every time the user scrolls to that location. — only once

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

This needs to only happen on the first scroll to that section — up or down.


回答1:


triggerOnce() is replaced with destroy(). Just add this.destroy().

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

For more options check the API of Waypoints.




回答2:


If you pass a second parameter to the waypoint() function, you can include an object of configuration options. Setting the triggerOnce option to true will make the plugin behave the way you'd like.

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



回答3:


In the new API, it seems that there is no triggerOnce option anymore, but still can be used the waypoint.disable() method after the first call




回答4:


The answer is to use this.destroy() at the end of your handler function. Here is an example that will work:

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

    handler: function(direction) {

        alert('CARRY OUT MY ACTION');

        this.destroy();

    }

});

Also see the waypoint.destroy() documentation.



来源:https://stackoverflow.com/questions/16002273/jquery-waypoints-fire-once

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!