ठीक है, जब आप पृष्ठ के निचले भाग तक स्क्रॉल करते हैं तो नीचे "कोड" कोड नीचे AJAX फ़ंक्शन निकाल दिया जाता है और परिणाम # पोस्टस्ट्रापर div पर जोड़े जाते हैं पृष्ठ।jQuery अनंत स्क्रॉल - स्क्रॉलिंग तेज होने पर ईवेंट कई बार आग लगता है
समस्या यह है: यदि मैं पृष्ठ के निचले हिस्से तक पहुंचने पर वास्तव में तेज़ी से स्क्रॉल करता हूं, तो AJAX कई बार आग लगती है और परिणामों के कई सेट #postswrapper div में लोड करती है (अतिरिक्त, 'अवांछित' परिणामों की संख्या निर्धारित होती है जल्दी स्क्रॉल करके कितने अतिरिक्त स्क्रॉल ईवेंट निकाल दिए गए थे)।
आखिरकार, मुझे उपयोगकर्ता द्वारा नीचे तक पहुंचने पर केवल परिणामों के एक सेट की आवश्यकता होती है। मैंने टाइमर और इस तरह जोड़ने की कोशिश की है, लेकिन इसका कोई फायदा नहीं हुआ है। यह स्पष्ट रूप से डीओएम में अतिरिक्त स्क्रॉल क्रियाओं को संग्रहीत कर रहा है और उसके बाद अनुक्रमिक क्रम में उन्हें फायर कर रहा है।
कोई विचार?
मैं 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