【问题标题】:jQuery Waypoints Fire OncejQuery Waypoints 触发一次
【发布时间】:2013-04-14 17:47:25
【问题描述】:
我正在使用http://imakewebthings.com/jquery-waypoints 和
当用户向下滚动到类div1 的区域时,我需要执行一些操作。但是,我只需要它触发一次,而不是每次用户滚动到该位置时。 — 只有一次
$('.div1').waypoint(function(direction)
{
alert(CARRY OUT MY ACTION);
});
这只需要在第一次滚动到该部分时发生 - 向上或向下。
【问题讨论】:
标签:
javascript
jquery
jquery-waypoints
【解决方案1】:
triggerOnce() 替换为 destroy()。
只需添加this.destroy()。
$('.div1').waypoint(function(direction){
alert('CARRY OUT MY ACTION')
this.destroy()
});
更多选项请查看API of Waypoints。
【解决方案2】:
如果您将第二个参数传递给waypoint() 函数,您可以包含一个配置选项对象。将 triggerOnce 选项设置为 true 将使插件按照您想要的方式运行。
$('.div1').waypoint(function(direction)
{
alert('CARRY OUT MY ACTION');
},
{
triggerOnce: true
});
【解决方案3】:
在新的API中,好像没有triggerOnce选项了,但第一次调用后仍然可以使用waypoint.disable()方法
【解决方案4】:
答案是在处理函数的末尾使用this.destroy()。这是一个可行的示例:
$('.div1').waypoint(function(direction){
handler: function(direction) {
alert('CARRY OUT MY ACTION');
this.destroy();
}
});
另请参阅waypoint.destroy() 文档。