2011-12-06 91 views
1

我使用下面的jquery ajax請求。成功時,「ajaxRenderSuccess」函數可能會持續500毫秒到1200毫秒,因此在運行此函數之前,我突出顯示了我的用戶界面(一種進度條)中的新步驟:我只從上一步中移除ui-state-highlight類「renderingPhase」),並將其添加到最後一步(「outputPhase」)。Jquery ajax成功刷新內容問題

所有工作如預期,除了我從來沒有看到我的outputPhase突出顯示,即使ajaxRenderSuccess函數持續超過1秒:它似乎絕對要執行整個「成功」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")); 

,看看元件在螢火蟲(或類似的)正確地選擇。

可能是標記中的class =而不是id =,但上述日誌會告訴您這是否是問題。同時保持調試器窗口打開,以便發現任何錯誤

+0

感謝您的建議。我嘗試了console.log(jQuery(「#」+ self.request.namespace +「outputPhase」)),它返回了預期的outputPhase按鈕,這不是選擇器問題,因爲如果我使用警報框暫​​時我的按鈕被正確突出顯示。我沒有在Chrome控制檯或螢火蟲中看到任何錯誤 – Dominique