0

当滚动到达 div 的底部时,我需要获取一个事件,并且根据下面的代码,我正在获取滚动到达底部的事件,但问题是我收到了多个事件,并且只要滚动它就会同时触发在底部。

那么有没有办法在处理第一个事件发生后停止连续触发事件而不是触发事件?

    $("#divid").bind('scroll', function() { 

    //Getting continuous event as far as scroll is in bottom

      if($('#divid')[0].scrollHeight - $('#divid').scrollTop() <= $('#divid').outerHeight()) 
      {
           //Code here---
      }
}); 
4

1 回答 1

0

要在一系列连续事件的开始或结束时触发一次事件处理程序,您可以对它们进行去抖动。

http://benalman.com/projects/jquery-throttle-debounce-plugin/

function start() {
    // code to run at start of event
}

function end() {
    // code to run at end of event
}

$(window).scroll($.debounce(250, true, start));
$(window).scroll($.debounce(250, false, start));

第一个参数是在被视为单独事件之前应该经过的毫秒数。第二个参数确定事件处理程序是应该在一系列事件的开始还是结束时运行。

在您的情况下,您可以使用“结束”版本在用户停止滚动时检查滚动位置。

于 2013-10-24T11:54:13.800 回答