2011-12-06 163 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