在jQuery中,如何在事件之后执行某些操作?

3
当另一个动画完成时,我希望播放一段动画。
我使用了这段代码:
$("#test_01").stop().animate({height: '500'}, 2500).promise($("#test_02").fadeIn(2500));

这会同时执行两个动画 - 这不是我想要的。 我需要先运行 $("#test_01"),然后再运行$("#test_02")

我该怎么做?

2个回答

4

done测试你的代码:

$("#test_01").stop().animate(
    {height: '500'},
    2500
).promise().done(
    function(){
        $("#test_02").fadeIn(2500)
    }
); 
done函数回调会在所有动画代码执行完毕后生效。

很高兴能帮上忙。请标记我的答案为已验证,这样对其他人也会有帮助。 - Meenesh Jain

2
只需使用animate()的完整回调函数即可。
$("#test_01").stop().animate({
    height: '500'
}, 2500, function () {
    $("#test_02").fadeIn(2500)
});

如果您正在寻找基于Promise的解决方案,那么您需要获取Promise对象,然后向Promise添加一个done回调函数,在该回调函数中执行延迟操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接