2013-08-01 49 views
2

我試圖在onscroll期間進行延遲加載。下面是代碼:無限滾動實施

$(window).scroll( 
      function() { 


       if ($(window).scrollTop() > ($(document).height() - $(window).height() - 200) && !loadNews)) 

       { 
         loadNews = true; 
         loadMoreNewsItems(); 

       } 
      }); 

LoadMoreNewsItems()做AJAX調用並追加數據,對AJAX調用的成功再次我設置loadNews標誌設置爲false。

上述實現是否正確。由於在newsitems下可用的頁腳塊,我減去了200。

當我們檢查時,有時用戶必須滾動,直到頁腳加載更多newsitems。我正在使用移動設備進行檢查。這裏可能是什麼問題。

而且,有時當我們快速滾動時,有多個AJAX請求。但是,爲了避免這種情況,我添加了loadNews標誌。但是,它也不起作用。

請幫忙。

+0

在if語句'&&!loadNews))'中有一個額外的括號。請先修復它。 –

+0

它只是複製代碼的粘貼。我刪除不必要的代碼。糟糕,我在這裏尋找解決方案,而不是語法問題。 – user694688

+0

不要重新發明輪子 - https://github.com/paulirish/infinite-scroll – Neil

回答

0

這是我用做無限滾動

var d=document; 
var remainingHeight=d.scrollHeight - d.clientHeight - (d.scrollTop || document.body.scrollTop); 

if(remainingHeight < 500){ 
    //do the loading process 
} 

你應該給它一個嘗試,代替目前的測試,它應與移動解決您的問題。

另外,關於多個ajax請求和您的標誌,問題是,您的測試中沒有正確放置loadNews,它位於錯誤的括號集內。

+0

謝謝。你能提供正確的語法嗎? AM獲取$(document).scrollHeight爲undefined,實際上所有的值都是undefined當我調試 – user694688

+0

myriacl-請問我知道這裏有什麼問題。 – user694688

+0

任何人都可以幫助解決這個問題。 – user694688