انتهت مشكلة الانتظار سمسم وظيفة تنفيذ قبل أن يحاول لتنفيذ مرة أخرى
-
03-07-2019 - |
سؤال
وأنا باستخدام .scroll $ (إطار) ()؛ لتحديد وظيفة لتكون الدعوة لحين تمرير المستخدم قريبة جدا من أعلى أو أسفل.
وظيفة يأخذ ثانية لتنفيذ، وإذا استمروا التمرير، يتم تنفيذها عدة مرات قبل أن أول واحد حتى الانتهاء.
هل هناك أي طريقة يمكن أن تسمح وظيفة تبدأ تنفيذ ثم تقول ظيفة .scroll () و$ (إطار) أنه يحتاج إلى الانتظار قبل تنفيذ هذه المهمة مرة أخرى؟
المحلول
هل يمكن تحديد منطقية أنك تتحقق بالفعل موقف التمرير:
checkingPosition = false;
$window.scroll(function() {
if(checkingPosition) return;
checkingPosition = true;
//do stuff
checkingPosition = false;
});
نصائح أخرى
وكنت تفعل شيئا من هذا القبيل لتجنب المشاكل نطاق / الارتباك عن طريق التغليف البيانات إلى كائن ... في هذه الحالة، الكائن مسج (على عنصر الإطار):
$(function() {
$(window).data('checking_scroll',false);
$(window).scroll(function() {
if($(this).scrollTop() >= 200 /* or whatever... */) {
if($(this).data('checking_scroll') === true) {
return false;
} else {
whatever_function();
}
}
});
});
function whatever_function() {
$(window).data('checking_scroll',true);
// do all your stuff...
$(window).data('checking_scroll',false);
}
و... ولكن هذا مجرد لي.
لا تنتمي إلى StackOverflow