[英]setTimeout stop scrolling function
我有這個滾動功能,檢查div id的結尾何時到達:
function loadOldPosts() {
$.ajax({
url: "https://www.example.com/go.php",
method: "post",
data:{
postID: postID
},
dataType:"json",
success:function(data)
{
if (data) {
setTimeout(loadOldPosts, 5000);
}
}
});
}
$(window).scroll(function() {
var $this = $(this);
if ($this.scrollTop() + $this.height() >= $('#wall_posts').offset().top + $('#wall_posts').height() ) {
loadOldPosts();
}
});
我試圖讓它一旦loadOldPosts運行,它必須等待5秒才能再次運行。 我雖然可以使用setTimeout函數完成此操作,但它似乎不起作用。
我該如何才能使該功能最多每5秒運行一次?
謝謝!
您可以使用以下示例等待下一次調用直到ajax成功/錯誤:
var loading = true;
function loadOldPosts(){
if(loading){
loading = false;
$.ajax({
...,
success:function(data){
loading = true;
},
error:function(data){
loading = true;
}
})
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.