[英]How to wait until a loop of jquery effects are finished before executing function
[英]How to wait until jQuery effects have finished?
我怎样才能等到动画在jQuery中完成?
function foo() {
$("#element").fadeOut();
}
我需要.fadeOut()
在foo()
返回之前完成,因为调用代码期望DOM不含#element
。
所有jQuery动画函数都有complete
回调。 因为它们是异步的,所以您不能等待它们,因此必须使用回调。
function foo() {
$("#element").fadeOut(function() {
// finished
});
}
jQuery将淡出定义为: .fadeOut( [duration ] [, complete ] )
,因此使用回调应该可以正常工作。
complete类型:Function()动画完成后调用的函数,每个匹配的元素调用一次。
为此使用回调函数
function foo() {
$("#element").fadeOut('slow', function(){
// called when the element finishes fading out
});
}
您无法阻止foo
在动画结束之前返回。 您需要使用回调或promise / deferred模式。 这是回调的工作方式:
function bar() {
foo(function() {
// stuff to execute after foo()
});
}
function foo(callback) {
$("#element").fadeOut('speed', callback);
}
$('#element').fadeOut(1000, function() {
// after 1 second do something
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.