Html 在beforeSend上删除ajax加载程序,并在启动后再次添加它
我们的项目上的ajax事件从这段代码开始被触发,并添加到应用程序头的jsp中。它是一个通用的,所以我们不能在这个代码中进行更改Html 在beforeSend上删除ajax加载程序,并在启动后再次添加它,html,jquery,ajax,fancybox-3,Html,Jquery,Ajax,Fancybox 3,我们的项目上的ajax事件从这段代码开始被触发,并添加到应用程序头的jsp中。它是一个通用的,所以我们不能在这个代码中进行更改 $( document ).ajaxSend(function( event, request, settings ) { $("#ajaxStatus").show() }); $( document ).ajaxStop(function( event, request, settings ) { $("#ajaxSt
$( 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的beforeSend()中的加载程序。我们尝试了.unbind()和.hide(),但没有成功。起作用的是.remove(),但是如果我们删除加载程序,加载程序的整个div都将从DOM中删除,我们需要在ajax成功函数之后再次追加该div,而不需要刷新页面。我们可以在不刷新页面的情况下再次追加该div吗?或者我们可以将加载程序隐藏在beforeSend()中而不删除它吗?我认为您可以将属性global设置为false以防止全局处理程序(ajaxSend、Stop等)
;-) 请使用jQuery CSS方法尝试以下解决方案
$.ajax({
url: "${createLink(controller: 'test',action: 'test123')}",
data: "${true}",
type: "POST",
dataType: "json",
beforeSend:function(){
$('#ajaxStatus').css('display','block');
},
success: function (data) {
$('#ajaxStatus').css('display','none');
},
complete: function (data) {
}
});
$.ajax({
url: "${createLink(controller: 'test',action: 'test123')}",
global: false,
...
$.ajax({
url: "${createLink(controller: 'test',action: 'test123')}",
data: "${true}",
type: "POST",
dataType: "json",
beforeSend:function(){
$('#ajaxStatus').css('display','block');
},
success: function (data) {
$('#ajaxStatus').css('display','none');
},
complete: function (data) {
}
});