我有一个jQuery $ .ajax调用,在所有主要浏览器中都可以正常运行。

另外,我利用.ajaxStart和.ajaxStop函数来制作
页面上显示“正在加载...”的不可见div,可见。

问题在于,尽管同时启动了ajaxStart和.ajaxStop,事件仍会触发
没有任何问题(我从console.log()进行了检查),. show事件
在Google Chrome中完全忽略了ajaxStart中jQuery的功能。

这是代码:

$("#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/

10-09 15:30