我怎么能等到jQuery完成动画?
function foo() {
$("#element").fadeOut();
}
我需要.fadeOut()
在foo()
返回之前完成,因为调用代码需要DOM没有#element
。
答案 0 :(得分:0)
所有jQuery动画函数都有一个complete
回调。因为它们是异步的,所以你不能等待,你必须使用回调。
function foo() {
$("#element").fadeOut(function() {
// finished
});
}
答案 1 :(得分:0)
jQuery将fadeout定义为:.fadeOut( [duration ] [, complete ] )
,因此使用回调应该可以正常工作。
complete类型:Function()动画播放后调用的函数 完成,每个匹配元素调用一次。
答案 2 :(得分:0)
为此
使用回调函数function foo() {
$("#element").fadeOut('slow', function(){
// called when the element finishes fading out
});
}
答案 3 :(得分:0)
在动画结束前,您无法阻止foo
返回。您需要使用回调或承诺/延迟模式。以下是回调的工作原理:
function bar() {
foo(function() {
// stuff to execute after foo()
});
}
function foo(callback) {
$("#element").fadeOut('speed', callback);
}
答案 4 :(得分:0)
$('#element').fadeOut(1000, function() {
// after 1 second do something
});