我有一个加载div 或加载程序,应该在Ajax请求期间显示。
$('#loadingDiv').ajaxStart(function () {
$(this).show();
}).ajaxComplete(function () {
$(this).hide();
});
我希望加载程序在所有Ajax请求期间显示,但在特定请求中阻止它。
我尝试了以下内容:
$.ajax({
url: 'Handler.ashx',
success: function (msg, status, xhr) {
$('#loadingDiv').hide();
}.....
但是div显示然后消失了,我不想让它显示出来。
答案 0 :(得分:8)
答案 1 :(得分:3)
<强> DEMO 强>
试试这个
$.ajax({
url: 'Handler.ashx',
beforeSend:function(){
if (<conditon>) /// check your condition here
$('#loadingDiv').show();
else
$('#loadingDiv').hide();
},
success: function (msg, status, xhr) {
$('#loadingDiv').hide();
}
});
希望这有帮助,谢谢
答案 2 :(得分:1)
在Ajax选项中使用global: false
,使请求不会触发任何global event handlers。
$.ajax
docs说global
选项:
设置为
false
,以防止触发ajaxStart
或ajaxStop
等全局处理程序。
如果在
$.ajax()
选项设置为global
的情况下调用false
...,则.ajaxStart()
方法不会触发。
答案 3 :(得分:0)
$.ajax({
url: 'Handler.ashx',
beforesend:function(){
// apply your code
},
success: function (msg, status, xhr) {
$('#loadingDiv').hide();
}.....
参考ajax