当滚动到页面的底部100px时,jQuery加载内容,多个事件被触发

我想要一个事件在用户滚动时加载更多内容并且几乎到达页面底部,比如从底部开始大约100px,问题是每次滚动页面的下部100px时事件都会被触发,因为显而易见的原因,这是一个不可能发生的明显问题,所以我想知道如何做到最好,我已经在这里检查了其他答案/问题,但是部分工作的一个解决方案并不符合我的需要要做,当我尝试改变它,它会,它每次完全冻结我的浏览器。 这是一个问题: 检查用户是否已滚动到底部

我正在看的答案接近底部,但这是他建议的代码:

$(window).scroll(function() { if($(window).scrollTop() + $(window).height() > $(document).height() - 100) { $(window).unbind('scroll'); alert("near bottom!"); } }); 

就像我说的那样,这确实有效,并且可以防止多个事件被触发,问题是我需要触发无数的事件,比如我到达底部时加载100行信息​​,但仍有1500多个,我需要它重复每次加载每一个信息量(一旦你到达页面的底部100px部分每次)

所以我试图做的是:

  function loadMore() { alert("More loaded"); $(window).bind('scroll'); } $(window).scroll(function() { if($(window).scrollTop() + $(window).height() > $(document).height() - 100) { $(window).unbind('scroll'); loadMore(); } }); 

就像我说的那样,每次都会立即冻结我的浏览器,绑定部分。

我也有同样的问题。 我遇到了这个链接 ,它确实帮助(和工作)!

更新:我查看了代码,我认为当你重新绑定时,你错过了重新绑定的function。

的jsfiddle

  function loadMore() { console.log("More loaded"); $("body").append("
"); $(window).bind('scroll', bindScroll); } function bindScroll(){ if($(window).scrollTop() + $(window).height() > $(document).height() - 100) { $(window).unbind('scroll'); loadMore(); } } $(window).scroll(bindScroll);

这对你有所帮助。

  

浏览此链接以获取整篇文章,并详细介绍如何触发多个事件。

当浏览器在jquery中滚动到页面末尾时加载更多内容

我遇到了同样的问题。 为了解决它,我使用underscore.js库来防止多个事件被触发。 链接在这里。 http://underscorejs.org/#throttle