全局ajax处理程序无法正常工作

时间:2012-08-24 15:23:49

标签: jquery css ajax

所以这实际上是一个由两部分组成的问题:为什么它不起作用,我是否应该打扰?

我有一个使用大量jquery的.load()和.get()的ajax应用程序。在我的全局js文件中,我添加了这些行来测试jQuery的全局ajaxComlete函数:

$('body').ajaxComplete(function(e){
    alert();
});

当ajax在整个应用程序中运行时,我没有收到任何警报。有谁知道为什么?

我想要这个的原因是因为我有很多通过类名应用的样式,并且每个ajax负载基本上都清除旧类并引入新类。这删除了我的样式。所以我有一个名为styleForm()的全局函数,它重新应用了我的所有样式。我在每个单独的ajax回调中调用此函数。即:

$.get('source.cfm',funcion(){
    styleForm();
});

我知道有这个全局ajax函数会产生大多数人可能会认为'clearner'的代码。但它会对性能产生多大影响吗?如果是这样,我不想这样做。如果没有,那么我想让它发挥作用。

1 个答案:

答案 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');