更新: 此错误已被至少两个其他人确认.即使您没有阅读我的完整帖子 - 如果您正在阅读本文并使用JQuery 1.3.1,那么如果您依赖于在DOM完成时但在页面图像加载之前要执行的任何处理程序,请停止使用它.
Update2:感谢Tom(用户ID 20!)在jQuery bug跟踪器上发布了票证的链接.
Update3 - 2009/01/28:该问题已得到妥善解决(对于那些无法恢复到1.2.6的人来说).对于目前使用1.3.1且需要立即修复的任何人,您可以阅读下面接受的答案以获取方向.谢谢约翰.
我刚刚升级到JQuery 1.3.1,我花了几个小时才意识到我心爱的人
$(function( ) { ... }
语法现在在执行函数体之前等待整个页面加载(包括图像).在尝试整合雅虎的菜单时,我看到了奇怪的行为.(幸运的是,我的页面上有一些缓慢的加载图像,这让我意识到了这个问题)!
我做了一个测试文件,因为我认为发生了一些更复杂的事情,但即使这个简单的文件,我仍然有相同的症状.
不同版本的JQuery有不同的结果:
版本1.2.6中发生的情况是立即显示警报框,然后我看到后面加载的图像(预期和记录的行为).
版本1.3.1中发生的是图像全部加载,然后才会显示警告框.
这是怎么回事!这是一个新功能(我无法想象为什么)或一个错误?
重要提示:这似乎只是IE中的一个问题,而不是Firefox
对不起,我没有一个公开可访问的动态图像文件,以便其他人更容易看到这一点.如果你想测试它我建议使用从谷歌图像中随机挑选的大图像文件并清除你的缓存.
这是由于jQuery错误#2614和#3880 - 在1.2.6和1.3中IE中的准备代码存在明确的问题 - 现在是1.3.1中的一组不同问题.
可以在这里找到更大的讨论:
http://groups.google.com/group/jquery-dev/browse_thread/thread/3abf45d3fd4d50fc
并且可以在此处找到与问题相关的故障单(如果您发现修复程序的其他问题,请重新打开故障单并发布到上面的jquery-dev线程):
http://dev.jquery.com/ticket/3988
我刚刚在SVN rev 6170中找到了解决方案.
我只是推了一个新的夜晚,你可以使用,直到1.3.2最终出来:
http://code.jquery.com/nightlies/jquery-2009-01-28.js
很抱歉延迟修理 - 本周旅行.