我想在加载页面后隐藏微调器 我试过这个:
$(document).ready(function() {
$('.loader')
.hide() // Hide it initially
.ajaxStart(function() {
$(this).show();
})
.ajaxStop(function() {
$(this).hide();
});
});
我有这个div:
<style>
.loader {
position: fixed;
left: 0px;
top: 0px;
width: 100%;
height: 100%;
z-index: 9999;
background: url("{{ asset('img/loading.gif') }}" ) 50% 50% no-repeat rgb(249,249,249);
}
</style>
<div class="loader"></div>
但没有结果。
答案 0 :(得分:1)
您可以使用
来实现此目的math.isnan(j)
和.ajaxSend()
Ajax Event Handlers
.ajaxComplete()
事件。已使用ajaxSend
方法注册的所有处理程序都将在此时执行。.ajaxSend()
事件。已使用ajaxComplete
方法注册的所有处理程序都将在此时执行。我使用下面的代码显示ajax请求时的加载器,然后在ajax请求完成后隐藏它。
以下是代码:
.ajaxComplete()
因为可以存在ajax请求的嵌套,所以var ajax_req_no = 0;
(function ($) {
$(document).ajaxSend(function () {
ajax_req_no = (ajax_req_no < 0) ? 0 : ajax_req_no;
ajax_req_no++;
if ($('.loader').length) {
$('.loader').show();
}
});
$(document).ajaxComplete(function () {
ajax_req_no--;
ajax_req_no = (ajax_req_no < 0) ? 0 : ajax_req_no;
if ($('.loader').length && ajax_req_no == 0) {
$('.loader').fadeOut();
}
});
})(jQuery);
是计算请求的数量,如果计数更多,那么将显示一个loder,否则loder将被隐藏。
注意:从jQuery版本1.8开始,此方法只应附加到ajax_req_no
。
答案 1 :(得分:0)
您是否可以在ajax调用之前的代码中添加.show()
,然后在.hide()
或.success()
中添加.done()
...
$("#buttonStartingAjax").click(function(){
$(".loader").show();
$.ajax({...}).done(function(){
$(".loader").hide();
...
});
)};
答案 2 :(得分:0)
$(document).ready(function() {
$(document)
.ajaxStart(function() {
console.log('some AJAX request has started');
$(".loader").show();
})
.ajaxStop(function() {
console.log('all AJAX requests have completed');
$(".loader").hide();
})
;
$("#btn").click(function() {
// trigger some AJAX call
$.get('example.com');
});
});
.loader {
position: fixed;
left: 0px;
top: 0px;
width: 100%;
height: 100%;
/*z-index: 9999;*/ /* to see demo's console.log */
background: url("img/loading.gif") 50% 50% no-repeat yellow;
display: none; /* unless overriden by jQuery */
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="loader"></div>
<button id="btn">Trigger an AJAX request</button>