2016-08-17 49 views
0

我如何等待動畫在jQuery中完成?如何等到jQuery特效完成?

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

我需要因爲調用代碼預計DOM是自由的#element.fadeOut()之前foo()返回完成。

+0

'$( 「#元素」)淡出(函數(){//做你的東西});' –

回答

0

所有jQuery動畫函數都有一個complete回調。因爲他們是異步的你不能等待他們,你必須使用回調。

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

的jQuery淡出定義爲:.fadeOut([duration ] [, complete ]),所以使用回調應該只是正常工作。

complete類型:Function()動畫爲 的函數完成,每個匹配元素調用一次。

0

使用一個回調函數,這個

function foo() { 
    $("#element").fadeOut('slow', function(){ 
    // called when the element finishes fading out 
    }); 
} 
0

您不能防止foo從動畫完成之前返回。您需要使用回調或承諾/延期模式。下面是一個回調可以工作:

function bar() { 
    foo(function() { 
     // stuff to execute after foo() 
    }); 
} 

function foo(callback) { 
    $("#element").fadeOut('speed', callback); 
} 
0
$('#element').fadeOut(1000, function() { 
    // after 1 second do something 

}); 
+3

歡迎#1,請加一點解釋。 – Robert