Jquery方式在一个地方处理所有ajax成功事件

时间:2011-07-22 10:26:56

标签: javascript jquery ajax

我有一个场景,我需要在常见的地方处理所有jquery成功事件。因为我希望在所有ajax成功事件之后调用一些委托。我知道我们可以使用$.ajaxComplete$.ajaxSucess。但问题是我所有的ajax调用都有自己的成功处理程序,所以最终$ .ajaxSucess会被覆盖。

我知道我可以写一个常用的方法,我可以把它放在所有ajax成功处理程序中。但我不想这样做,我想知道一种更清洁的方式。

在jquery中是否有一个方法处理程序,或者最好的方法是什么?

5 个答案:

答案 0 :(得分:1)

$.when($.ajax("/page1.php"), $.ajax("/page2.php"))
  .then(mySuccessFunc, myFailureFunc);

答案 1 :(得分:1)

$.ajaxSuccess方法应该可以正常工作,如this live demo所示,它与现有的ajax成功处理程序不冲突。它在每个之后执行:

$('#msg').ajaxSuccess(function(result) {
    alert('ajax succeeded');    
});

答案 2 :(得分:1)

以这种方式尝试 -

 $.when(// your all ajax call)
   .then(//delegate handler after ajax succes)

答案 3 :(得分:1)

$.ajaxSuccess不会被本地成功处理程序覆盖,它会在本地成功处理程序之后执行。

答案 4 :(得分:0)

是否:

$.ajaxStop(...)

解决了您的问题?