7

需要一些帮助来理解此处success记录的事件和ajaxSuccess事件之间的区别。

success是本地事件,ajaxSuccess而是全局事件。我了解局部变量和全局变量之间的区别,但在理解事件范围的概念时遇到了一些麻烦。

有哪些示例场景会优先于另一种?

4

2 回答 2

8

您可以这样使用全局事件:

$.ajaxSuccess(function(){
//do my global thing here
});

因为每次ajax调用成功都会触发全局事件,而不仅仅是一个。

但是

success: function(){/* do local here */});

仅在本地 ajax 调用函数中作为其私有对象触发。

注意

$.ajaxComplete(function(){ });

可能是您所追求的,因为它完全触发 - 有或没有错误。

编辑:success:ajaxSetup 全局中本地的特别说明:(不建议这样做,您应该使用$.ajaxSuccess

$.ajaxSetup({
    success: function() {
       // local within the ajaxSetup
    }
});

现在,我们为什么要使用一个而不是另一个?也许您需要对返回的对象进行特殊过滤:

$(selector1).ajax({
    success: function(data){
        processMySelector1JSON(data);
    }
});
$(selectorOther).ajax({
    success: function(data){
        processMySelectorOtherJSON(data);
    }
});
$.ajaxSuccess(function(){
  $('#message').text('Ajax Done!').fadeIn(function(){$(this).fadeOut();});
});
于 2012-05-24T12:51:25.097 回答
0

success: function()更好,因为仅在请求成功时才调用此事件。它检查来自服务器的错误,并且数据错误使其变得更好。

于 2012-05-24T13:00:32.283 回答