0

別のコマンドに進む前に、jQueryアニメーションが終了するのを待つ方法はありますか?

たとえば、要素をフェードアウト/スライドアップし、要素内のいくつかのアイテムを変更してから、フェードイン/スライドダウンします。

ステートメントを次々に並べると、アニメーションが完了する前にアイテムが変化するのがわかります。

$('#item').fadeOut();
$('#item').html('Changed item');
$('#item').fadeIn();

ありがとう。

4

4 に答える 4

3

でコールバックを渡すことができますfadeIn/fadeOutjQueryドキュメント

$('#item').fadeOut('slow', function(){

     $('#item').html('Changed item');
     $('#item').fadeIn();
});
于 2012-09-29T14:03:55.657 に答える
3

次のように、から呼び出されるコールバックメソッドを使用できます。.fadeOut

$('#item').fadeOut('fast', function() {
    $(this).html('Changed item').fadeIn();
});

または、下にあるDeferredオブジェクトを使用します

$('#item').fadeOut('slow').promise().done(function() {
    $(this).html('Changed item').fadeIn();
});
于 2012-09-29T14:05:35.060 に答える
1

コールバック関数をに渡しますfadeOut

$("#item").fadeOut(function() { 
                       $(this).html("changed").fadeIn();
                   });

これは、基本的なjQueryチュートリアルで学習するようなものです。

于 2012-09-29T14:03:13.993 に答える
1
$('#item').fadeOut('slow', function() { // do your stuff here });

詳細については、http://docs.jquery.com/Effects/fadeOut#speedcallbackをご覧ください。

于 2012-09-29T14:04:54.397 に答える