2012-09-26 73 views
0

我有以下脚本,它的工作原理相当漂亮,显示当AJAX的东西是装:HTML加载消息

$("#divLoading").ajaxStart(function() { 
    $('#divLoading').show(); 
}); 

$("#divLoading").ajaxComplete(function() { 
    $('#divLoading').hide(); 
}); 

不过,这似乎开始一个click事件之后的延迟,并且显示的内容之前结束在屏幕上,即下面是exagerated,只是为了说明问题:

如果我点击一个按钮,用于执行一些ajaxy,加载DIV点击按钮后显示5秒钟。 div在屏幕上停留10秒,div消失,内容改变在div消失5秒后发生。

任何想法,为什么这种情况正在发生,我怎么能得到消息的任何点击事件发生时立即显示自己,只有消失在HTML加载完成后在屏幕上?

回答

1

这是因为该功能的实际Ajax调用不是之前和之后您单击处理程序和回调其hapen在Ajax调用的任何一端时执行。

如果你看看你的代码,你可能在ajax调用的按钮的click事件中做了一些准备ajax调用,然后在回调中ajax调用完成了,所以消息被隐藏,但你仍然有代码要完成。

0

我不是JQuery的那个亲,但我有类似的情况下,当我需要的东西要执行的AJAX调用是在我的项目建成后,东西,它看起来像它的工作是这样的:

$(document).ajaxStop(function() { 
      my_jquery_stuff(); 
});