我们有什么方法可以在Jquery中停止动画(也停止完整的回调功能)

时间:2012-09-03 21:11:17

标签: javascript jquery

我认为问题与Jquery中的队列有关。 我们可以使用clearQueue()来清除队列以停止任何动画,但是清除队列无法停止回调函数 考虑一下

$("#sth").animate( { width:'100%' }, 2000, function() {
    $("#sth").css("width","0%");
});

$("#sth").clearQueue().css("width","0%");

能够停止动画并推回宽度。但是,在2000毫秒之后,由于完整的回调功能,它也将变为100%宽度。无论队列是否存在,该函数都将在2000毫秒后调用。

2 个答案:

答案 0 :(得分:2)

来自jQuery文档:

  

.clearQueue()   从队列中删除所有尚未运行的项目。

  

.stop()   停止匹配元素上当前运行的动画。

尝试使用.stop()代替.clearQueue()。

答案 1 :(得分:0)

调用停止功能将停止附加在sth obj上的动画

function stopSthAnim(){
    $('#sth#).stop(); 
}

您还可以使用完整的回调函数

$("#sth").animate( { width:'100%' }, {
        duration:2000,
        complete: function(){
           $('#sth#).stop(); 
        }
    }, function() {
    $("#sth").css("width","0%");
});