gpt4 book ai didi

html - 在 beforeSend 上删除 ajax loader 并在 Start 后再次添加它

转载 作者:行者123 更新时间:2023-12-04 15:14:00 25 4
gpt4 key购买 nike

我们项目中的 ajax 事件从此代码开始触发,并添加到应用程序 header 的 jsp 中。它是通用的,因此我们无法更改此代码

$( document ).ajaxSend(function( event, request, settings ) {
$("#ajaxStatus").show()
});

$( document ).ajaxStop(function( event, request, settings ) {
$("#ajaxStatus").hide()
});

$( document ).ajaxError(function( event, request, settings ) {
$("#ajaxStatus").hide()
});

#ajaxStatus 是包含加载程序的 div 的 id,div

<div id="ajaxStatus" style="display: none;">
<div id="load_gridGrid" class="loading ui-state-default ui-state-active" style="display: block; border: none !important; width: 130px;">
<asset:image src="ajax-loader.gif" alt="" />
</div>
</div>

ajax请求是

$.ajax({
url: "${createLink(controller: 'test',action: 'test123')}",
data: "${true}",
type: "POST",
dataType: "json",
beforeSend:function() {

},
success: function (data) {
},
complete: function (data) {
}
});

所以我想要的是删除 ajax 的 beforeSend() 中的加载程序。我们尝试了 .unbind() 和 .hide() 但它没有用。有效的方法是 .remove(),但如果我们删除加载器,加载器的整个 div 将从 DOM 中删除,我们需要在 ajax 成功函数后再次附加该 div,而无需刷新页面。我们可以在不刷新页面的情况下再次附加该 div 吗?或者我们可以在 beforeSend() 中隐藏加载程序而不删除它吗?

最佳答案

我认为您可以将属性 global 设置为 false 以防止全局处理程序(ajaxSend、Stop 等)

$.ajax({
url: "${createLink(controller: 'test',action: 'test123')}",
global: false,

...

;-)

关于html - 在 beforeSend 上删除 ajax loader 并在 Start 后再次添加它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64677915/

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