如何在某个元素完成动画后运行函数?这是一个像动画一样的向下滑动,元素被隐藏,当点击某些东西时,它会通过向下滑动其内容(+高度)而变得可见。
我无法控制该元素的动画功能,因此我无法使用$ .animate函数中的回调选项......
现在我有类似
的东西$('.trigger').click(function(){ // <-- "trigger" will make the element animate
setTimeout(myfunction, 500);
});
哪个有效,但我不喜欢它,感觉hacky
答案 0 :(得分:3)
如果你正在使用jQuery 1.5+,你可以使用jQuery promise()
方法:http://jsfiddle.net/rGBk7/
e.g。
/* do animation */
$("div").animate({ 'marginLeft' : '300px' }, 1000);
/* attach a promise to animated element/s */
$("div").promise().done(function() {
alert("animation end");
});
答案 1 :(得分:1)
你的意思是:
$("div").queue(function(){
your_function();
});
它将在动画队列完成后执行