簡體   English   中英

setTimeout停止滾動功能

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM