jquery - ajaxStart、ajaxStop 仅在 Firefox 中正确触发,而不是 chrome 或 ie

标签 jquery ajax

下面的代码在 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/

相关文章:

javascript - 使用 jQuery 在淡出( fiddle )之后为 DIV 的重新定位设置动画?

javascript - 禁用正在进行的动画

jquery - 冒泡 Jquery 的 Dom

php - ajax get方法与mysql数据库一起使用

python - 处理和保护 ajax 请求中的服务器功能..python

javascript - 如何从 node.js 检索数据到 Ajax?

php - 解析 Json 响应时出现问题

javascript - 如果以编程方式更改元素,如何在 jquery 中触发事件?

javascript - chrome 中不显示加载栏

php - 取消设置在 php 中不起作用的错误消息