【问题标题】:Scroll Event Causes Custom Event To Trigger Twice (should be once)滚动事件导致自定义事件触发两次(应该是一次)
【发布时间】:2016-07-27 11:06:56
【问题描述】:

以下函数附加了滚动事件,然后触发第 5 行定义的自定义事件。

第 5 行似乎导致函数调用两次(如果删除第 4 行打印一次,第 5 行打印两次)。

自定义事件应该只触发一次,目前应该触发两次。

 this.on(window, 'scroll', function(event){
    var win = $(window);
    if ($(document).height() - win.height() === win.scrollTop()) {
        console.log('testing 123');
         this.trigger('uiHandlRequest', { type: 'foo' });
        return false; 
        }            
   });

【问题讨论】:

  • 如果您对特定元素滚动感兴趣,那么为什么要event.currentTarget
  • 试过 var win = $(window);
  • thisthis.on 中实际上指的是什么?
  • 这可能对doc有帮助

标签: javascript jquery infinite-scroll twitter-flight


【解决方案1】:

在触发自定义事件时使用“window”而不是“this”。

this.on(window, 'scroll', function(event){
    var win = $(window);
    if ($(document).height() - win.height() === win.scrollTop()) {
        console.log('testing 123');
         window.trigger('uiHandlRequest', { type: 'foo' });
        return false; 
        }            
   });

【讨论】:

    猜你喜欢
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多