如何等到jQuery效果完成?

时间:2016-08-17 13:16:24

标签: javascript jquery jquery-animate

我怎么能等到jQuery完成动画?

function foo() {
  $("#element").fadeOut();
}

我需要.fadeOut()foo()返回之前完成,因为调用代码需要DOM没有#element

5 个答案:

答案 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

});