每当ajax调用发生时,我都会使用jQuery显示加载图标,如下所示:
$body = $("body");
$(document).on({
ajaxStart: function() { $body.addClass("loading"); },
ajaxStop: function() { $body.removeClass("loading"); }
});
.modal {
display: none;
position: fixed;
z-index: 1000;
top: 0;
left: 0;
height: 100%;
width: 100%;
background: rgba( 255, 255, 255, .8 )
url('http://i.stack.imgur.com/FhHRx.gif')
50% 50%
no-repeat;
}
body.loading {
overflow: hidden;
}
body.loading .modal {
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="modal"><!-- Place at bottom of page --></div>
无论何时发生ajax都会正常加载,但很明显,加载图标会显示在隐藏后面UI的正文中。而不是我想要仅在特定div内显示加载。在附加的html文件中,我想只在
中进行加载显示"div id= box1"
答案 0 :(得分:0)
vijayP的评论是正确的方向。
由于您只将加载类限制为body元素,因此必须修改CSS。
.loading {
overflow: hidden;
}
.loading .modal {
display: block;
}
然后在JavaScript中:
$(document).on({
ajaxStart: function() { $("#box1").addClass("loading"); },
ajaxStop: function() { $("#box1").removeClass("loading"); }
});
答案 1 :(得分:0)
我已经编辑了一下你的代码,我希望现在能让你继续。
$body = $("body");
$(document).on({
ajaxStart: function() { $body.addClass("loading"); },
ajaxStop: function() { $body.removeClass("loading"); }
});
.modal {
display: none;
position: fixed;
z-index: 1000;
top: 0;
left: 0;
height: 100%;
width: 100%;
/*background: rgba( 255, 255, 255, .8 )
url('http://i.stack.imgur.com/FhHRx.gif')
50% 50%
no-repeat;*/
}
body.loading {
overflow: hidden;
}
body.loading .modal {
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="modal">
<img src="http://i.stack.imgur.com/FhHRx.gif" />
<!-- Place at bottom of page --></div>