2013-04-05 92 views
0

我正在使用window.scroll()函數在滾動時將更多的HTML內容附加到DIV持有者。我在每個滾動事件上加載10..10。但在加載前10個內容後,文檔大小增加,因此瀏覽器會自動滾動並調用loadContent函數並添加新內容而不進行滾動手動。我可以防止此機制。我只需要在用戶加載更多內容時滾動按鈕。如何在加載新的HTML內容時防止自動滾動事件?

$(function(){ 
    var loading = true; 
    $(window).scroll(function(){ 
    if (loading && $(window).scrollTop() + $(window).height() > $(document).height() - 100){ 
     loading = false; 
     loadContents(); 
     loading = true; 
} 
}); 
)}; 

有沒有其他更好的方法來執行無限滾動功能?

+0

請參見[fiddle](http://jsfiddle.net/anpsmn/ysreM/2/)。我沒有看到與您的代碼自動滾動的任何問題。檢查你的loadContents函數。 – anpsmn 2013-04-05 07:34:35

回答

1

通常使用一個布爾標誌,就像你正在做的是如何處理這個問題。通常,雖然數據是使用ajax填充的,那麼loading將被更改。您的loading的值似乎也是相反的。

$(function(){ 
    var loading = false; 
    $(window).scroll(function(){ 
     if (!loading && $(window).scrollTop() + $(window).height() > $(document).height() - 100){ 
      loading = true; 
      loadContents(); 
     } 
    }); 

    function loadContents() { 
     $.ajax({ 
      ..., 
      success: function() { 
       // add new data 
       loading = false; 
      } 
     }); 
    } 
)}; 
+0

謝謝丹尼爾,它做得很好.... – Sreehari 2013-04-05 07:54:53

相關問題