如何在jquery动画期间冻结“开始”按钮

时间:2011-12-27 01:30:24

标签: javascript jquery animation

关于jquery动画的快速问题...... 我做了一个相当长的jquery动画(约45秒),它有很多层的setTimeout和回调。简而言之,如果有人在动画运行时点击“开始”,我就会陷入困境,因为那时它会启动一个新的动画循环而不会停止旧动画循环,所以我将同时运行两个...你看到了问题。

是否有任何技术可以让我1)阻止“开始”按钮的功能直到动画结束,或者2)在中间停止动画循环并重新初始化如果用户点击“开始” “按钮?

我提前感谢 - 非常感谢任何建议!

3 个答案:

答案 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();
});