我们怎样才能阻止连续事件发生?

时间:2013-10-24 11:39:23

标签: javascript jquery events scroll

当滚动到达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---
      }
}); 

1 个答案:

答案 0 :(得分: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));

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

在您的情况下,您可以使用'end'版本来检查用户停止滚动时的滚动位置。