2017-08-31 85 views
0

我正在處理無限滾動的信息。我已經調用了一個jQuery函數,在.each函數中使用切片,默認情況下它是10,但我想,如果向下滾動數量將增加* 2倍。無限滾動json獲得新結果

但是每次我滾動他都會在下面添加更多新項目。

但我想要的是,我有相同的10個項目,當我滾動10個或更多的新項目將顯示下面的默認項目數量。

代碼:

var win = $(window); 
// Each time the user scrolls 
win.scroll(function() { 
    // End of the document reached? 
    if ($(document).height() - win.height() == win.scrollTop()) { 
     $('#loading').show(); 

     getEvents(10 * 2); 

    } 
}); 

我想聽聽您的意見,非常感謝!

回答

2

Ajax響應返回僅10個項目每次調用,所以:

與getEvents第一個呼叫(0,10);返回10個元素的數組

第2次調用getEvents(10,20);返回下一個10個元素

...

n,其中getEvents調用(N * 10,N + 1 * 10);

在你的函數

這樣做:

// on page load run : 
getEvents(10 , 20); 
// add counter 
var counter = 2; 
// Each time the user scrolls 
win.scroll(function() { 
    // End of the document reached? 
    if ($(document).height() - win.height() == win.scrollTop()) { 
    $('#loading').show(); 

    getEvents(counter * 10 , ++counter * 10); 

    } 
}); 

嘗試去抖滾動事件

我希望這個幫助

+0

謝謝但getEvents()函數需要2個參數。因爲我在每個()上使用slice(),就像0到10個事件一樣,而且我希望每次滾動時我都想要* 2,所以。第一次嘗試0到10,第二次10到20等等。 –

+0

謝謝你,但現在的問題是,第一次嘗試我只有第二次嘗試新東西顯示相同的項目。 :S –

+1

@PieterDijkstra你應該以某種方式跟蹤你上次加載的元素。我不知道你的排序模式,但我希望你沒有可以插入其他元素之間的元素,就像我們在某個項目中所做的那樣,否則就會變得很複雜(恭喜你的尋路工具順便說一句:P) – Kaddath