gpt4 book ai didi

jquery:如何从全局 ajaxSuccess 处理程序中取消特定的 ajaxSuccess 处理程序

转载 作者:行者123 更新时间:2023-12-01 08:26:33 24 4
gpt4 key购买 nike

我想注册一个全局ajaxSuccess处理程序,它会在某些条件下取消调用者函数的特定ajaxSuccess处理程序。

有办法实现吗?

提前致谢

最佳答案

不幸的是,没有办法做你想做的事情,不是这样,你必须设置一个全局变量或其他一些路径。如果你看how the jQuery success function works :

handleSuccess: function( s, xhr, status, data ) {
// If a local callback was specified, fire it and pass it the data
if ( s.success ) {
s.success.call( s.context, data, status, xhr );
}

// Fire the global callback
if ( s.global ) {
jQuery.ajax.triggerGlobal( s, "ajaxSuccess", [xhr, s] );
}
}

您可以看到这只是一个顺序问题,本地成功处理程序总是在触发全局事件之前发生,这会触发任何 $.ajaxSuccess()处理程序。完成您要做的事情的最简单方法是在本地 success 处理程序的开头调用任何可能取消的函数,如下所示:

$.ajax({
//options...
success: function(data) {
if(shouldIBeCanceled()) return;
//rest of code...
}
});

另一种选择是编辑 jQuery 核心,或扩展它,这会给插件带来一些不可预测的行为,所以我不会走这条路,因为升级时它也可能会带来新的痛苦。

关于jquery:如何从全局 ajaxSuccess 处理程序中取消特定的 ajaxSuccess 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3370258/

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