滚动无休止加载或如何多次不触发事件
Endless Load on Scroll or how to no trigger an event numerous times
我实现了一个加载函数,每当到达页面末尾时就会触发该函数。它基本上起作用,但每当我向下滚动时,该事件就会被触发多次。有没有更好的方法来实现这个想法,或者而不是多次触发这个事件?
以下是我所做的:
var loading = false;
$(window).scroll(function(){
if((($(window).scrollTop()+$(window).height())+250)>=$(document).height()){
if(loading == false){
loading = true;
$.get("test", function(data){
$("div.article:last").after(data);
});
loading = false;
}
}
});
$(document).ready(function() {
$('#loaded_max').val(500);
});
谢谢!
您可以这样做:
$.get("test", function(data){
$("div.article:last").after(data);
});
loading = false;
loading=false;
在您的$.get
回调函数之外。$.get
是一个异步函数。loading=false;
在$.get
之后直接执行,而不是在Ajax调用就绪时执行。
如果您将loading=false;
放入$.get
回调中。您不会同时有多个请求者。
一次只得到一个请求的解决方案:
$.get("test", function(data){
$("div.article:last").after(data);
loading = false;
});
此外,我会在人们到达底部之前开始加载页面的下一部分,比如400px。因此,他们可以继续滚动,而不必等待您的请求准备就绪。那样我会更顺利。
相关文章:
- 多次触发主干点击事件
- jQuery触发器事件在一个循环中多次出现
- 如果我设置“;listenToOnce”;为同一事件触发多次
- 在keyup事件中指定click事件处理程序会导致click事件被多次激发
- JavaScript onresize 事件触发多次
- j查询点击事件触发多次
- 角度.JS - 事件被多次触发
- jQuery on click事件发生多次
- 在重新渲染子视图后,主干事件会多次触发
- 每个事件执行多次代码:多次下载
- jQuery在点击事件触发多次
- 滚动事件被多次调用
- JavaScript函数被事件监听器多次调用,即使我引用函数
- 什么会导致点击事件触发多次
- 如何阻止单击事件在多次单击时排队
- 在循环中单击事件触发多次
- j查询点击事件触发多次
- popstate HTML5事件被多次激发
- 事件调用多次
- 如何防止我的 jQuery 文本区域焦点事件连续多次重复触发