2016-07-27 1 views
1

Следующая функция имеет событие прокрутки прикрепленную, который затем запускает пользовательское событие, определенное на линии 5.событие Scroll вызывает пользовательское событие дважды вызвать (должен быть один раз)

Line 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 = $ (окно); –

ответ

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

Используйте «окно» вместо «этого» при запуске настраиваемого события.

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