关于jquery动画的快速问题...... 我做了一个相当长的jquery动画(约45秒),它有很多层的setTimeout和回调。简而言之,如果有人在动画运行时点击“开始”,我就会陷入困境,因为那时它会启动一个新的动画循环而不会停止旧动画循环,所以我将同时运行两个...你看到了问题。
是否有任何技术可以让我1)阻止“开始”按钮的功能直到动画结束,或者2)在中间停止动画循环并重新初始化如果用户点击“开始” “按钮?
我提前感谢 - 非常感谢任何建议!
答案 0 :(得分:2)
当您开始动画时,请停用按钮,如
$('#yourbuttonid').attr("disabled", true);
然后在完整的关闭动画上重新设置按钮
$('#continueButton').attr("disabled", false);
答案 1 :(得分:1)
您可以将以下代码添加到开始按钮的点击处理程序中:
if($(this).hasClass('disabled')) {
return;
}
$(this).addClass('disabled');
然后,当动画完成时,你只需要removeClass('disabled')
。
答案 2 :(得分:0)
您可以在动画开头设置一个标志,并在结尾处将其删除。然后,您将使用按钮的单击事件来引用该标志,以确定是否应该执行该操作。
$('.your-button').click(function( event ){
if( flag == true )
// do animation
else
event.preventDefault();
});