6

如何在某个元素完成动画后运行函数?这是一个像动画一样的向下滑动,元素被隐藏,当点击某些东西时,它会通过向下滑动其内容(+高度)变得可见。

我无法控制该元素上的动画功能,因此我无法使用 $.animate 函数中的回调选项...

现在我有类似的东西

$('.trigger').click(function(){  // <-- "trigger" will make the element animate 
  setTimeout(myfunction, 500);
});

哪个有效,但我不喜欢它,感觉很hacky

4

2 回答 2

3

如果您使用 jQuery 1.5+,您可以使用 jQuerypromise()方法:http: //jsfiddle.net/rGBk7/

例如

/* do animation */
$("div").animate({ 'marginLeft' : '300px' }, 1000);

/* attach a promise to animated element/s */    
$("div").promise().done(function() {
    alert("animation end");
});

http://api.jquery.com/promise/

于 2012-04-04T11:20:05.997 回答
1

你的意思是:


$("div").queue(function(){
    your_function();
});

动画队列完成后执行

于 2012-04-04T11:23:02.620 回答