0

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

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

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

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

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

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

我知道拥有这个全局 ajax 函数会产生大多数人可能认为“更清晰”的代码。但这会对性能产生很大影响吗?如果是这样,我不想那样做。如果没有,那么我想让这个工作。

4

1 回答 1

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

于 2012-08-24T15:30:24.407 回答