我有一个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/