これは、ページ下部までスクロールするとAJAX関数が起動し、結果が#postswrapper divに追加されるページ。jQuery無限スクロール - スクロールが速いときに複数回イベントが発生する
問題は次のとおりです。ページの下部に到達したときにスクロールすると、AJAXが何回か実行され、#postswrapper divにいくつかの結果セットがロードされます(追加の「不要な」結果の数はすばやくスクロールして追加のスクロールイベントをいくつ発生させたか)。
最終的には、ユーザーが一番下に到達する時間ごとに1組の結果しか提供できません。私はタイマーなどを追加しようとしましたが、無駄です。明らかに、追加のスクロールアクションをDOMに格納してから、順番にそれらを起動します。
アイデア?
誰かを助けるならjquery.1.4.4.jsを使用しています。とにかくe.preventDefault()は動作しません。
$(window).scroll(function(e) {
e.preventDefault();
if ($(window).scrollTop() >= ($(document).height() - $(window).height())) {
$('div#loadmoreajaxloader').show();
$.ajax({
cache: false,
url: 'loadmore.php?lastid=' + $('.postitem:last').attr('id'),
success: function(html) {
if (html) {
$('#postswrapper').append(html);
$('div#loadmoreajaxloader').hide();
} else {
$('div#loadmoreajaxloader').html();
}
}
});
}
});
不要な結果は、 'loadmore.php'スクリプトが必要ないときに何度か追加実行されるという結果になります。私は、ユーザーがページの一番下に達するたびに、そのコードを1回実行し、loadmore.phpで適切な結果をロードし、ユーザーがページの下部に到達するまで他のものをロードしないでください再び。 – Marc