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.
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.
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
});
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
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