javascript - 等待动画完成

标签 javascript jquery

当我直接处理动画时,我知道如何使用回调来等待动画完成,但是如果动画是从另一个函数调用的,那我该怎么做呢?

比如我有一个元素#btn,当我点击它时会触发一个动画:

$('#btn').click(function() {
   //bla bla...
});

然后我在另一个函数中使用 $('#btn').click(); 调用它:

function foo() {
   $('#btn').click();
   $('#avatar').fadeIn('slow'); //-->I want this animation to run after #btn has finished, but I don't know how to use a callback for this situation...
}

最佳答案

您可以使用promisedone 方法:

$('#btn').trigger('click').promise().done(function(){
     $('#avatar').fadeIn('slow');
});

http://jsfiddle.net/FsyBZ/

请注意,它仅在您选择当前正在生成动画的元素时才有效。最好的选择是使用 animate 回调函数。

$('#elem').animate({}, duration, function(){
   // ...
})

关于javascript - 等待动画完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14112511/

相关文章:

jquery - 解除绑定(bind)多次绑定(bind)的事件

jquery - 使用 JQuery UI Position 方法进行绝对定位

javascript - 将 Colorbox 添加到我的 ReactJS 应用程序会创建 "jQuery is not defined"

javascript - 为什么我的 <marquee> 中的 link/span 标签在 Firefox 中出现在多行上?

javascript - 从 Angular 变量填充 jstree ThreeView

javascript - 如何动态设置图像大小?

javascript - jQuery - 获取元素类型

jquery - 带背景图片的div,根据屏幕大小设置高度?

javascript - 我应该在一些操作后关闭 Mongo 连接吗?

javascript - new Object() 不等于 new function Object 如何使它们相等?