https://github.com/fredwu/jquery-endless-scrollの EndlessScroll 関数を使用しています。
スクロールが上がったときにエンドレススクロールを無効にしたいのですが、方法がわかりません。配列がポインターでトラバースされた場合にのみ発射を停止したい (プリロードされた配列がある)。
注: - i はカウンターです - times はロードされたアイテムの数です - tam は配列の長さです
data = [. . . . . . . . ]
tam = data.lenght();
i = 0;
items = 10;
$('#ul-container').endlessScroll({
fireDelay: 1,
loader: '',
insertAfter: '#ul-container li:last',
insertBefore: '#ul-container li:last',
ceaseFireOnEmpty: false,
ceaseFire: function(j, p) {
if (i >= tam) {
return true;
}
},
content: function(j, p) {
var times = 0;
if (p>0) {
if (i < tam) {
to_return = "";
while (i + times < tam && times < 10) {
to_return += "<p>" + (i + times).toString() + " " + data[i + times]["id"]
+ ": " + data[i + times]["text"] + "</p>";
times++;
}
i = i + times;
console.log(i);
//$('#ul-container').append(to_return);
return to_return
}
}
}
上にスクロールするたびに、「未定義」になります。下にスクロールすると、配列から 10 個のアイテム (または残っているアイテム) が取得されます。そして、配列がすでに表示されている場合は、スクロールを停止します。
説明のために、この endlessScroll は Ajax 呼び出し内にあります。私は Django を使用してデータベースからデータを取得し、それらを a にロードして表示しています。