2010-12-18 10 views
1

私の(#loader)divのテキスト情報を置き換えたいと思います。私は2つの関数show_info()とreplace_info()を使用しています。はテキスト情報を置き換えます

$('#measure_submit').click(function(){ 
     show_info("Sending params ..."); 
     get_data(); 
    }); 

function get_data(){ 
    $.ajax({ 
      url: '/controller/view', 
      data : { ... }, 
      type: 'POST', 
      typedata: 'text', 

      success: function(data){ 
       hide_info(); 
      }, 
      beforeSend : function(data) { 
       replace_info("Loading data ..."); 
      } 
     }); 

function show_info(string){ 
     $('#loader').text(string); 
     $('#info_box').fadeIn(2000); 
    } 

function replace_info(string){ 
    $('#loader').fadeOut(2000); 
    $('#loader').text(string); 
    $('#loader').fadeIn(2000); 

} 

しかし、「データを読み込んでいます...」というテキストしか表示されません。 fadeOut(2000)があっても、 "Sending params ..."は完全にスキップされます。

私はsetTimeout(replace_info( "Loading data ...")、4000)を試していました。 LUCKはありません。

どこに問題があるのですか? 助けが必要です。

おかげでピーター

答えて

1

.text()があるアニメーションのようにキューに入れられた関数ではないので、あなたが代わりにあなたがそれをキュー持っている、またはこのように、.fadeOut()仕上げでそれを呼び出すよ、これを見ている:

function replace_info(string){ 
    $('#loader').fadeOut(2000, function() { $(this).text(string); }).fadeIn(2000); 
} 

.queue()バージョンは、次のようになります。

function replace_info(string){ 
    $('#loader').fadeOut(2000) 
       .queue(function(n) { $(this).text(string); n(); }) 
       .fadeIn(2000); 
} 
+0

おかげでニックが、これは私が探していたものです。ブリリアント。 – praethorian

関連する問題