
这是一个会影响IE6 7和8的错误。jQuery的文档就绪处理程序只有在IE 6 7和8中的窗口加载事件之前或之后才会触发。在IE9中不会发生。
解决它的一种方法是自己处理事件。
<body > <!--[if lt IE 9]> <script> $('body').removeClass('jquerydomready'); </script> <![endif]-->然后在脚本中使用以下命令:
function init() { // pre here will be ran when document is ready $("body").css("background-color","green");}if ( $("body").is(".jquerydomready") ) { $(init); // not oldIE}else { // oldIE way document.onreadystatechange = function() { if (document.readyState == "interactive") init(); }}但是请记住,如果您正在执行ajax请求并期望它们能够快速发生,否则代码将无法正常工作,我建议您迁移到不需要它们快速发生的系统,因为您不能始终依赖网络快速。
票证:http :
//bugs.jquery.com/ticket/12282
目前,它实际上并未标记为错误,但是,如果您遵循此问题的历史记录,则在jQuery的整个开发过程中已对其进行了多次修复和未修复。
编辑:我不确定这个答案的IE6部分,我还没有对此进行过IE6测试。
这是支持性的JSFiddle,表明它在IE7和8中不正确地等待(再次在IE6中未测试)。
在上述修复之前:http :
//jsfiddle.net/PFWmS/
完成上述修复后:http :
//jsfiddle.net/PFWmS/7
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)