gpt4 book ai didi

javascript - 覆盖 Ajax 成功事件

转载 作者:行者123 更新时间:2023-12-01 02:35:47 27 4
gpt4 key购买 nike

我正在尝试重写 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回调:

Whenever an Ajax request completes successfully, jQuery triggers the ajaxSuccess event. Any and all handlers that have been registered with the .ajaxSuccess() method are executed at this time.

这将让您在每次成功的 AJAX 调用时调用自己的函数,而不会干扰通常的成功回调。

还有其他各种global AJAX event handlers您可能也想看看。

如果这些回调不适合您,那么您可以为 $.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。您也可以使用相同的技术来 Hook 其他回调。

关于javascript - 覆盖 Ajax 成功事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6532186/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com