2016-07-27 43 views
1

繼功能貼有滾動事件,然後觸發第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; 
     }    
    }); 
+0

請創建[MCVE] –

+0

如果你有興趣在一個特定的元素滾動,比爲什麼'event.currentTarget'? –

+0

已嘗試var win = $(window); –

回答

0

添加一個定時器到函數。

var timeout; 

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

觸發自定義事件時,使用'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; 
 
     }    
 
    });