小编典典

覆盖Ajax成功事件

ajax

我试图覆盖jQuery
ajax函数以处理对成功事件的默认操作,但还要执行我在options参数中使用的回调函数。目的是在响应中返回标签,而我一直想从响应中删除这些标签以在其他地方使用。

该方案是:

  • Ajax提交
  • 阿贾克斯成功
  • -默认成功动作
  • -呼叫Ajax成功回调

有人可以帮忙吗?我尝试扩展

  • jQuery.ajax
  • jQuery.ajaxSuccess
  • jQuery.ajax.done

我的代码是:

var _ajaxSuccess = jQuery.fn.ajaxSuccess;  
$.fn.extend({  
    ajaxSuccess: function (a)  
    {  
        _ajaxSuccess.apply(this, a);  
    }  
});

阅读 278

收藏
2020-07-26

共1个答案

小编典典

有全局ajaxSuccess回调:

每当Ajax请求成功完成时,jQuery都会触发该ajaxSuccess事件。.ajaxSuccess()此时已执行已向该方法注册的所有处理程序。

这样,您就可以在每次成功的AJAX调用中调用自己的函数,而不会干扰通常的成功回调。

您可能还需要查看其他各种全局AJAX事件处理程序

如果这些回调没有合适的时间或功能,则可以编写自己的包装器$.ajax并使用:

function wrapped_ajax(options) {
    var success = options.success;
    options.success = function(data, textStatus, jqXHR) {
        // Do whatever needs to be done here.
        if(success)
            success(data, textStatus, jqXHR);
    };
    return $.ajax(options);
}

您可以在调用原始成功回调之前对常规的成功回调参数执行任何所需的操作。您的呼叫wrapped_ajax方式与完全相同$.ajax。您也可以使用相同的技术来挂接其他回调。

2020-07-26