正确的jQuery语法动画“完整”回调

时间:2013-08-22 07:38:15

标签: jquery jquery-animate

当jQuery动画完成时,我必须使用回调函数。我总是这样做:

.animate({ properties }, duration, function() { /* callback */ });

但是,在这里提问时,我已经提出了一种语法不同的解决方案。

$('#redirectNoticeContainer').animate({ properties }, { queue: false, duration: 123 });

我应该把回调函数放在哪里?这是我的猜测,但它没有用。

$('#redirectNoticeContainer').animate({ properties }, { queue: false, duration: 123 }, function () {
console.log("ok");
setTimeout(function () { window.location.replace("/Account/Login"); }, 1200);
});

动画有效。回调没有。我应该把它放在哪里?

2 个答案:

答案 0 :(得分:12)

That form of animate()需要complete选项:

$("#redirectNoticeContainer").animate({
    // properties...
}, {
    queue: false,
    duration: 123,
    complete: function() {
        console.log("ok");
        setTimeout(function() {
            window.location.replace("/Account/Login");
        }, 1200);
    }
});

答案 1 :(得分:7)

你也可以使用承诺'自从jquery 1.6

$('.play-button').animate({ opacity: 0 }).promise().done(function ()
{
     $('.video').addClass('playing');
});

另见How to get jQuery to wait until an effect is finished?