2016-08-17 8 views
0

jQueryでアニメーションが終了するまではどうすればいいですか?jQueryエフェクトが終了するまで待つ方法は?

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

は、私は、呼び出し元のコードは、DOMが#elementがないことを期待しているため.fadeOut()foo()返す前に完了する必要があります。

+0

'$( "#要素")フェードアウト(関数(){//自分のものを行う});' –

答えて

0

すべてのjQueryアニメーション関数には、completeコールバックがあります。彼らは非同期なので、はそれらのためにを待つことができません、あなたはコールバックを使用する必要があります。そううまく動作するはずのコールバックを使用して、.fadeOut([duration ] [, complete ])

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

はjQueryのは、としてフェードアウトを定義します。

完全型:機能()一致した要素につき1回呼び出される のアニメーションを呼び出す関数です。

0

あなたはアニメーションが終了する前に戻ってからfooを防ぐことはできません。この

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

のためのコールバック関数を使用します。コールバックまたは約束/延期パターンを使用する必要があります。ここでは、コールバックは、仕事ができる方法は次のとおりです。

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

はStackOverflowのへようこそ、少し説明を追加してください。 – Robert

関連する問題