gpt4 book ai didi

javascript - jQuery ajaxStart 仅适用于第一个请求

转载 作者:行者123 更新时间:2023-11-30 17:17:59 25 4
gpt4 key购买 nike

有一个页面上有很多请求ajax。在执行查询时,我想显示一个带有文本“正在加载”的 block 。

$(document).ajaxStart(function() {
$( "#loader" ).show();
});
$(document).ajaxStop(function(){
$( "#loader" ).hide();
});

但它只适用于第一个请求。

最佳答案

这就是 ajaxStart 的工作原理,来自 docs :

Description: Register a handler to be called when the first Ajax request begins

我认为您应该手动显示和隐藏每个 ajax 调用的加载程序,在 ajax 调用之前调用 $( "#loader").show(); 然后使用 complete 选项ajax 来隐藏它,像这样:

$( "#loader" ).show();
$.ajax({
type: "POST",
url: url,
data: data,
success: function(msg) {
//stuffs
},
complete: function() {
$( "#loader" ).hide();
}
});

已编辑:

如果您不想编辑您的 ajax 请求,也许您可​​以尝试 ajaxSend()ajaxComplete(),它们应该对所有 ajax 执行调用,而不是 ajaxStart()ajaxStop():

 $(document).ajaxSend(function() {
$( "#loader" ).show();
});
$(document).ajaxComplete(function(){
$( "#loader" ).hide();
});

关于javascript - jQuery ajaxStart 仅适用于第一个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25720159/

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