2011-12-06 16 views
1

私は以下のjquery ajaxリクエストを使用します。成功すると、 "ajaxRenderSuccess"関数は500msから1200msの間続くことがあります。この関数を実行する前に、私はUIの新しいステップを強調します(プログレスバーの一種):前のステップからui-state-highlightクラスを削除します"renderingPhase")、最後のステップで追加します( "outputPhase")。Jquery ajaxのコンテンツの更新に関する問題

ajaxRenderSuccess関数が1秒以上続く場合でも、outputPhaseがハイライト表示されることはありませんが、すべて正常に動作します。ページをリフレッシュする前に「成功」​​ajaxイベント全体を実行する必要がありますか?

私は、ちょうどaddClassとajaxRenderSuccess呼び出しの間で取り繕うために(「出力位相が強調表示」)の警告を表示した場合、それは最後のステップが正しく強調表示されている作品...

が、それは既知の問題であり、および/または正常な行動ですか?この "成功" jqueryイベント内で表示を強制的に更新するにはどうすればよいですか?

ありがとうございました!

var self = this; 
    jQuery.ajax({ 
     type: "POST", 
     url: renderingURL, 
     contentType:"text/html; charset=UTF-8", 
     success: function (respJSON){ 
      jQuery("#"+self.request.namespace+"renderingPhase").removeClass('ui-state-highlight'); 
      jQuery("#"+self.request.namespace+"outputPhase").addClass('ui-state-highlight');  
      self.ajaxRenderSuccess(respJSON); 
     } 
     } 

答えて

0

この関数は完全にうまくいくと思われるので、おそらくセレクタに問題があります。

console.log(jQuery("#"+self.request.namespace+"outputPhase")); 

をやってみて、要素が放火魔(または類似)で正しく選択されているかどうかを確認します。

id =の代わりにclass =とすることができますが、これが問題であるかどうかを前述のログから知ることができます。また、デバッガのウィンドウを開いたままにしておいてください。

+0

ありがとうございます。私はalertboxで一時的に私のボタンが正しく強調表示されるので、console.log(jQuery( "#" + self.request.namespace + "outputPhase"))、期待されるoutputPhaseボタンを返します。これはセレクタの問題ではありません。私はクロームコンソールや火かき棒で何のエラーも見なかった – Dominique