2017-06-20 74 views
-3

我有以下代碼,當用戶滾動到屏幕底部時觸發。唯一的問題是我希望Ajax調用只觸發一次。我的代碼是:如何只做一次Ajax調用?

 var w = $(window); 
     window.onscroll = function(ev) { 
      if ($(document).height() - w.height() == w.scrollTop()) { 


       $('#loading-image').show(); 
       $.ajax({ 
        url: "page-2.html", 
        cache: false, 
        success: function(result){ 
         $("#part2").html(result); 
         console.log(); 
        }, 
        complete: function(){ 
         $('#loading-image').hide(); 
        } 
       }); 


      } 
     }; 
+0

BTWŸ做ü需要在滾動底部的ajax,我可以知道嗎? –

+0

@Riaz Laskar是的,因爲我想加載一個文件,一旦用戶滾動到底部 – Mariton

+0

可能重複[如何只調用一次Ajax](https://stackoverflow.com/questions/11738859/how-to- call-ajax-only-once) –

回答

-1

你可以嘗試這樣的:

var bottom_reached = false; 
     $(window).scroll(function(){ 
     if ($(window).scrollTop() == ($(document).height() - $(window).height())) { 
      bottom_reached = true; 

       $('#loading-image').show(); 
      if(bottom_reached) 
      { 
       bottom_reached = false; 
       $.ajax({ 
        url: "page-2.html", 
        cache: false, 
        success: function(result){ 
         $("#part2").html(result); 
         console.log(); 
        }, 
        complete: function(){ 
         $('#loading-image').hide(); 
        } 
       }); 

      } 
      } 
      }); 
0

最簡單的方法,你可以添加一個全局變量,並檢查它是這樣的:

var w = $(window); 
var BOTTOM_REACHED = false; 
window.onscroll = function(ev) { 
    if ($(document).height() - w.height() == w.scrollTop() && !BOTTOM_REACHED) { 
     BOTTOM_REACHED = true; 
     $('#loading-image').show(); 
      $.ajax({ 
       url: "page-2.html", 
       cache: false, 
       success: function(result){ 
        $("#part2").html(result); 
        console.log(); 
       }, 
       complete: function(){ 
        $('#loading-image').hide(); 
        BOTTOM_REACHED = false; 
       } 
      }); 


     } 
    }; 
+0

好吧,不,最簡單的方法*是在底部到達後解除綁定事件。 –

+0

@KevinB,無論你或我誤解了這個問題。只需要一次調用ajax,而每秒滾動最多可達100次。你到底意味着什麼? –

+0

好的,然後加載結果後再次綁定它,所以你需要創建另一個函數,並做一些綁定/解除綁定...當然這是最簡單的方法:) –