问题
This is cool and I am familiar with this. However I want the next and previous buttons to stay visible, just not be click able. In my particular situation, the buttons are images that are part of the design. I just want the user to not be able to click through before an animation ends.
回答1:
$(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() { }
回答2:
one more technique:
$(".next,.prev").click(function(){
if ($('#my_animated_elelement').is(':animated'))
{
return false;
}
})
回答3:
I guess you have javascript calls for the images onclick's, use a variable MyApp.IgnoreNextPrevClicks
to flag whether the onclick handlers do execute or not.
MyApp={}
MyApp.IgnoreNextPrevClicks=false;
MyApp.PrevClick=function() {
if(MyApp.IgnoreNextPrevClicks) return;
//real work goes here
}
now before calling the jquery animator, set MyApp.IgnoreNextPrevClicks
to true, and set it back to false after the animation ends (use jquery animation callback).
回答4:
function btn() {
$('#btn').one('click', function(){
//call your animation function here.
setTimeout(btn, animation duration);
});
}
回答5:
$('#mybtn').attr("disabled","disabled"); // to Disable Button
$('#mybtn').removeAttr("disabled"); // to Enable Disabled button
来源:https://stackoverflow.com/questions/3618958/jquery-disable-next-button-until-animation-finishes