下面的代码在 Firefox 中执行得很好(即 class="ajax-loader"的 div 分别随着开始和停止事件显示和隐藏),但由于某种原因,在 IE 或 Chrome 中却不能执行。 (注意,使用jquery 2.2版本)
$(document).ajaxStart(
function () {
$('.ajax-loader').css("visibility", "visible");
}
).ajaxStop(
function () {
$('.ajax-loader').css("visibility", "hidden");
}
);
有什么想法吗?
更新 好的,看来这些事件确实在 IE 和 Chrome 中触发。我只是暂时禁用了 .ajaxStop 段中的代码。不同之处在于 Firefox 会立即显示加载元素,而在 Chrome 和 IE 中,.ajaxStart 事件似乎不会被触发,直到 ajax 调用返回为止。
最佳答案
我建议你需要这样尝试。
$(document).ready(function() {
$("#click").on('click', function() {
$('.ajax-loader').css("visibility", "visible");
$.ajax({
url: 'yourURL',
success:function(){
$('.ajax-loader').css("visibility", "hidden");
}
});
});
});
.ajax-loader{
visibility:hidden;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id='click'>Click</button>
<div class="ajax-loader">Loading</div>
尝试按照 ajaxstart doc 定义它
$.ajaxSetup({'global':true});
关于jquery - ajaxStart、ajaxStop 仅在 Firefox 中正确触发,而不是 chrome 或 ie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45451333/