Jquery تعطيل الزر التالي حتى تنتهي الرسوم المتحركة
-
26-09-2019 - |
سؤال
هذا رائع وأنا على دراية بهذا.ومع ذلك، أريد أن تظل الأزرار التالية والسابقة مرئية، ولكن لا يمكن النقر عليها.في حالتي الخاصة، الأزرار عبارة عن صور تشكل جزءًا من التصميم.أريد فقط ألا يتمكن المستخدم من النقر قبل انتهاء الرسوم المتحركة.
المحلول
$(function(){
$("#previous").bind("click", Previous);
$("#next").bind("click", Next);
});
function DoAnimation() {
$("#previous,#next").unbind("click");
$('#id').animate(
complete: function() {
$(this).after('<div>Animation complete.</div>');
$("#previous").bind("click", Previous);
$("#next").bind("click", Next);
}
});
}
function Previous() { }
function Next() { }
نصائح أخرى
تقنية واحدة أخرى:
$(".next,.prev").click(function(){
if ($('#my_animated_elelement').is(':animated'))
{
return false;
}
})
أعتقد أن لديك استدعاءات جافا سكريبت للصور عند النقر، استخدم متغيرًا MyApp.IgnoreNextPrevClicks
لتحديد ما إذا كانت معالجات onclick قد تم تنفيذها أم لا.
MyApp={}
MyApp.IgnoreNextPrevClicks=false;
MyApp.PrevClick=function() {
if(MyApp.IgnoreNextPrevClicks) return;
//real work goes here
}
الآن قبل استدعاء jquery animator، قم بتعيين MyApp.IgnoreNextPrevClicks
إلى true، وأعده مرة أخرى إلى false بعد انتهاء الرسوم المتحركة (استخدم رد اتصال الرسوم المتحركة jquery).
function btn() {
$('#btn').one('click', function(){
//call your animation function here.
setTimeout(btn, animation duration);
});
}
$('#mybtn').attr("disabled","disabled"); // to Disable Button
$('#mybtn').removeAttr("disabled"); // to Enable Disabled button
لا تنتمي إلى StackOverflow