如何在 jQuery 中发生事件后做某事?

Posted

技术标签:

【中文标题】如何在 jQuery 中发生事件后做某事?【英文标题】:How to do something after an event in jQuery? 【发布时间】:2015-10-11 19:07:30 【问题描述】:

我想在另一个动画完成后播放一个动画。

我使用了这个代码:

$("#test_01").stop().animate(height: '500', 2500).promise($("#test_02").fadeIn(2500));

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

我该怎么做?

【问题讨论】:

【参考方案1】:

用你的代码试试done

$("#test_01").stop().animate(
    height: '500',
    2500
).promise().done(
    function()
        $("#test_02").fadeIn(2500)
    
); 

done 函数回调将在动画中的所有代码完成后工作。

【讨论】:

很高兴帮助标记我的答案已验证,以便对其他人也有帮助【参考方案2】:

只需使用animate()的完整回调

$("#test_01").stop().animate(
    height: '500'
, 2500, function () 
    $("#test_02").fadeIn(2500)
);

如果您正在寻找基于 promise 的解决方案,那么您需要获取 promise 对象,然后将 done 回调添加到您将执行延迟操作的 promise 中

【讨论】:

以上是关于如何在 jQuery 中发生事件后做某事?的主要内容,如果未能解决你的问题,请参考以下文章

如何计算自特定列中发生事件以来经过的时间 - Pandas DataFrames

Android Shaking 在 3 秒后做某事

互联网连接可用后做某事的最佳方法

在 AsyncTask 完成后做某事

jQuery事件

效果完成后做某事