jquery - ajaxStart 在 Google Chrome 中忽略 .show()

标签 jquery ajax google-chrome

我有一个 jQuery $.ajax 调用,它在所有主要浏览器中都能正常工作。

此外,我还使用 .ajaxStart 和 .ajaxStop 函数来制作 我的页面上有一个不可见的 div,上面写着“正在加载...”,可见。

问题是,虽然 ,ajaxStart 和 .ajaxStop 都会触发事件 没有任何问题(我从 console.log() 检查它), .show 事件 ajaxStart 中的 jQuery 在 Google Chrome 中被完全忽略。

这是代码:

$("#loadMsg").ajaxStart(function(){
   console.log('ajaxstart');
   // the next command is ignored ONLY in Google Chrome
   $(this).show(0);
}); 

$.ajax({
  url:"xxx.php",
  type:"POST",
  data:"id="+id,
  async:false,
  success:function(data)
  {
     console.log(data); 
  }
});  

$("#loadMsg").ajaxStop(function(){
  console.log('ajaxfinish');
  $(this).hide(0);
});

我已经尝试过:

$("#loadMsg").show(0);  
$("#loadMsg").fadeIn();  
$("#loadMsg").css("display","block");  
$("#loadMsg").css("display","inline");  

等等

如有任何建议,我们将不胜感激。

最佳答案

您不能使用 async:false 来执行此操作,这将导致浏览器挂起,直到请求完成。我建议您考虑重新设计您的项目,使其异步工作,而不是尝试使用 async:false。

关于jquery - ajaxStart 在 Google Chrome 中忽略 .show(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10815154/

相关文章:

javascript - 在 DOM 上存储触发的事件

javascript - jQuery html() 返回空的新输入标签?

javascript - Jquery 删除脚本错误编码

javascript - 表体替换后数据表初始化(ajax)

html - Chrome 的检查设备非常不准确?

javascript - getElementsByTagName 是跨所有浏览器的安全调用吗?

ajax - d3.js 按需数据加载获取树的下一个节点

javascript - 优化:使用ajax加载内容

javascript - 获取使用 chrome 扩展创建的弹出窗口的 DOM 访问权限

android - Chrome 无法从 Android 应用打开