所以这实际上是一个由两部分组成的问题:为什么它不起作用,我是否应该打扰?
我有一个使用大量jquery的.load()和.get()的ajax应用程序。在我的全局js文件中,我添加了这些行来测试jQuery的全局ajaxComlete函数:
$('body').ajaxComplete(function(e){
alert();
});
当ajax在整个应用程序中运行时,我没有收到任何警报。有谁知道为什么?
我想要这个的原因是因为我有很多通过类名应用的样式,并且每个ajax负载基本上都清除旧类并引入新类。这删除了我的样式。所以我有一个名为styleForm()的全局函数,它重新应用了我的所有样式。我在每个单独的ajax回调中调用此函数。即:
$.get('source.cfm',funcion(){
styleForm();
});
我知道有这个全局ajax函数会产生大多数人可能会认为'clearner'的代码。但它会对性能产生多大影响吗?如果是这样,我不想这样做。如果没有,那么我想让它发挥作用。
答案 0 :(得分:0)
您是否尝试将ajaxComplete绑定到$(document)
?
在我们的代码中,我们使用$.ajaxSetup({})
,$(document).ajaxStart(function(){})
和$(document).ajaxStop(function(){})
。
您需要使用$(document)
的原因:
$.get
基本上是$.ajax
的简写,它将触发文档上的ajax事件(.ajaxComplete
,.ajaxError
等)。
$('body').ajaxComplete
仅在您将ajax事件绑定到它或更低的dom元素时才会触发。通常这意味着$('<header>').load('http://www.example.com');