我试图覆盖jQuery ajax函数以处理对成功事件的默认操作,但还要执行我在options参数中使用的回调函数。目的是在响应中返回标签,而我一直想从响应中删除这些标签以在其他地方使用。
ajax
options
该方案是:
有人可以帮忙吗?我尝试扩展
jQuery.ajax
jQuery.ajaxSuccess
jQuery.ajax.done
我的代码是:
var _ajaxSuccess = jQuery.fn.ajaxSuccess; $.fn.extend({ ajaxSuccess: function (a) { _ajaxSuccess.apply(this, a); } });
有全局ajaxSuccess回调:
ajaxSuccess
每当Ajax请求成功完成时,jQuery都会触发该ajaxSuccess事件。.ajaxSuccess()此时已执行已向该方法注册的所有处理程序。
.ajaxSuccess()
这样,您就可以在每次成功的AJAX调用中调用自己的函数,而不会干扰通常的成功回调。
您可能还需要查看其他各种全局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。您也可以使用相同的技术来挂接其他回调。
wrapped_ajax