【问题标题】: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() 文档。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多