调用stop时jquery动画队列承诺会发生什么

时间:2012-08-02 19:09:34

标签: javascript jquery jquery-animate promise

我想知道在调用.stop()函数时动画队列承诺状态会发生什么。

例如:

$('.my-elem')
    .stop(true, true)
    .animate({})
    .promise()
    .always(function() {
        // do something
    })

如果在任何时候调用.stop()函数,那么之前返回的promise会发生什么?

现在,我感觉到承诺的回报只是永远待着。有什么线索吗?

1 个答案:

答案 0 :(得分:4)

停止动画可以解决这个问题。

//start the anim and alert 'done' on deferred resolution
$('div').animate({height: 500}, 3000).promise().done(function() {
    alert('deferred resolved');
});

//interrupt it after 1 second
setTimeout(function() { $('div').stop(); }, 1000);