2011-12-11 12 views
1
$("#clickme").click(
      function(){ 
       $(this).slideToggle(1000); 
       $(this).load("MYTEXT.txt"); 
       $(this).slideToggle(1000); 
      } 
     ) 

最初のアニメーションが終了した後にのみ、HTML要素の新しいコンテンツを表示します。このコードでは、最初にスライドして新しいコンテンツでスライドしますが、スライドアップ効果が行われる前に新しいコンテンツが表示されます。JQuery:アニメーションの読み込みが完了するのを待ちません。

どうすればこの問題を解決できますか?

答えて

1
$("#clickme").click( 
      function(){ 
       $(this).slideToggle(1000, function() { 
        $(this).load("MYTEXT.txt", function() { 
         $(this).slideToggle(1000); 
        }); 
       });  
      }  
     ) 

を直前の関数が実行された後でなければなりません(アニメーションやAJAX呼び出しには非常に便利です)。

0

あなたはこの試みるコールバック

$("#clickme").click(function(){ 
    $(this).slideToggle(1000, function(){ 
     $(this).load("MYTEXT.txt", function(){ 
      $(this).slideToggle(1000); 
     }); 
    }); 
}); 
0

としてそれらをチェーンする必要があります:あなたは、コードを実行するためにコールバックを使用することができ、物事がお互いの後に起こることを取得するには

$("#clickme").click(
      function(){ 
       $(this).slideToggle(1000).load("MYTEXT.txt").slideToggle(1000); 
      } 
     ) 
0
$("#clickme").click(function(){ 
     $(this).slideToggle(1000, function() { 
      $(this).load("MYTEXT.txt", function() { 
       $(this).slideToggle(1000); 
      }); 
     }); 
});