48

更新: 此错误已被至少另外两个确认。即使您没有阅读我的完整帖子 - 如果您正在阅读本文并使用 JQuery 1.3.1,那么如果您依赖于要在 DOM 完成时但在页面图像加载之前执行的任何处理程序,请停止使用它.

更新2 :感谢Tom(用户 id 20!)在 jQuery 错误跟踪器上发布票证链接。

更新 3 - 2009/01/28:问题已得到妥善解决(对于那些无法恢复到 1.2.6 的用户)。对于当前使用 1.3.1 并需要立即修复的任何人,您可以阅读下面接受的答案以获取指导。谢谢约翰。


我刚刚升级到 JQuery 1.3.1,我花了几个小时才意识到我心爱的

$(function( ) {  ... }

语法现在在执行函数体之前等待整个页面加载(包括图像)。尝试集成雅虎菜单时,我看到了奇怪的行为。(幸运的是,我的页面上有一些加载缓慢的图像,这让我意识到了这个问题)!

我制作了一个测试文件,因为我认为发生了更复杂的事情,但即使使用这个简单的文件,我仍然有相同的症状。

<head>
   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>   
   <script>
    $(function() {    
      alert("Ready"); 
    });
  </script>
</head>

<body>      
  <img src="<PATH_TO_DYNAMIC_IMAGE>_1.jpg" />
  <img src="<PATH_TO_DYNAMIC_IMAGE>_2.jpg" />
  <img src="<PATH_TO_DYNAMIC_IMAGE>_3.jpg" />
  <img src="<PATH_TO_DYNAMIC_IMAGE>_4.jpg" />       
</body>

不同版本的 JQuery 有不同的结果:

  • 在 1.2.6 版中发生的情况是警报框立即显示,然后我看到它后面加载的图像(预期和记录的行为)。
  • 在 1.3.1 版本中发生的是图像全部加载,然后才会显示警告框。

这是怎么回事!这是一个新功能(我无法想象为什么)还是一个错误?

重要提示:这似乎只是 IE 中的问题,而不是 Firefox

抱歉,我没有可公开访问的动态图像文件,以便其他人更容易看到。如果你想测试一下,我建议使用从谷歌图像中随机挑选的大图像文件并清除缓存。

4

4 回答 4

57

这是由于 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中对此进行了修复。

我刚刚推出了一个新的 nightly,您可以在 1.3.2 最终版发布之前使用它:
http://code.jquery.com/nightlies/jquery-2009-01-28.js

很抱歉延迟修复 - 这周正在旅行。

于 2009-01-28T22:47:38.253 回答
4

有些东西不能进行单元测试。刚刚在 IE6+7 和 1.3.1 中确认。天哪,多么巨大的倒退。

那么,你有时间报告这个吗?刚刚检查过,这不是 1.3.1 的已知错误。

于 2009-01-25T12:17:04.620 回答
4

这是我提交的票的更新。似乎@Webdawson已将示例页面附加到票证上。

于 2009-01-27T02:42:53.693 回答
3

是的,我添加了一个示例,它显然是 IE6 和 7 中的一个错误(我没有在其他 IE 版本中对其进行测试)。好像1.3.1版本有很多bug。:(

这是示例链接:http ://www.kollermedia.at/jquery_bug.html

于 2009-01-27T10:10:41.387 回答