覆盖Ajax Success事件
我试图覆盖jQuery ajax
函数来处理成功事件的默认操作,但也执行我在options
参数中使用的回调函数。 目的是在响应中返回标记,我总是想要从响应中删除以便在其他地方使用。
场景是:
- Ajax提交
- Ajax成功
- – 违规成功法案
- – 调用Ajax成功回调
有人可以帮忙吗? 我试过扩展
-
jQuery.ajax
-
jQuery.ajaxSuccess
-
jQuery.ajax.done
我的代码是:
var _ajaxSuccess = jQuery.fn.ajaxSuccess; $.fn.extend({ ajaxSuccess: function (a) { _ajaxSuccess.apply(this, a); } });
有全局ajaxSuccess
回调:
每当Ajax请求成功完成时,jQuery就会触发
ajaxSuccess
事件。 已经使用.ajaxSuccess()
方法注册的任何和所有处理程序都会在此时执行。
这将允许您在每次成功的AJAX调用时调用自己的函数,而不会干扰通常的成功回调。
您可能还需要查看各种其他全局AJAX事件处理程序 。
如果这些回调没有适合您的时间或function,那么您可以为$.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); }
在调用原始成功回调之前,您可以对通常的成功回调参数执行任何操作。 你可以用与$.ajax
完全相同的方式调用wrapped_ajax
。 您也可以使用相同的技术挂钩其他回调。
尝试jQuery.ajaxSetup
它可能会帮助你, 在这里阅读它
这样做:
$.ajaxSuccess(function(){ //somethingtodo });
在http://tutorialzine.com/2011/06/15-powerful-jquery-tips-and-tricks-for-developers/ heading 12中提到。