jQuery 1.8.2 发布

发布日期 作者

我们很高兴地宣布 jQuery 1.8.2 现已发布! 此版本修复了在过去几个版本中报告的几个错误和性能回归,我们认为 1.8 版本目前非常稳定。 唯一确保它能与你的代码兼容的方法是测试它 - 所以请务必进行测试!

与往常一样,我们已经发出 jQuery 形状的信号灯;Google 和 Microsoft CDN 的主控中心已处于高度戒备状态,并将很快发布这些文件。 为了立即缓解问题,请使用上面的副本。 如果您发现问题,请 提交错误报告,并务必从 jsfiddle.netjsbin.com 中包含测试用例。

jQuery 1.8.2 的完整变更日志如下。 如果这是你第一次升级到 1.8 版本,请务必阅读 1.8.01.8.1 的博客条目,以了解更改内容。

衷心感谢此版本的补丁贡献者;你们将通过你们的 GitHub 账号被熟知:timmywil、gibson042、rwldrn、joyvuu-dave、jaubourg、staabm 和 sindresorhus。 此外,我们感谢所有抽出时间提交带有测试用例的优质错误报告的社区成员。 你们的初步工作使我们能够找到并修复错误。

jQuery 1.8.2 变更日志

Deferred

  • #12521: Deferred.promise( target) 仅在 typeof( target)=='object' 时才能正常工作

事件

  • #12423: jQuery 在 IE7+ 上使用 Comcast Protection Guard 和任何防按键记录保护软件时会崩溃
  • #12436: 使用委托事件和伪类会导致性能下降

其他

  • #12229: 一些不一致之处/优化

偏移量

  • #12534: .offset() 在 BlackBerry5 和 iOS3 上会抛出错误
  • #12536: 使 .offset() 计算在没有 getBoundingClientRect 的浏览器上更准确

选择器

  • #12303: 如果属性值包含 :first :last,则属性选择器会失败
  • #12337: 在添加新的子元素后,:nth-child 选择器不准确
  • #12361: seleter 存在错误
  • #12448: :contains() 边界情况会抛出错误
  • #12492: 在 textarea 聚焦事件处理程序中,$(this).is(':focus') == false 在 Chrome 和 Safari 中
  • #12523: JQuery 将换行符渲染为文本节点
  • #12526: :last 选择器无法找到匹配项
  • #12541: 1.8.0 和 1.8.1: 双 :not() 选择器在 IE6/7 中失败
  • #12572: :contains 在 v1.8 中使用 iframe 搜索时会中断

遍历

  • #12474: 在使用 append 的集合上使用 find 不会返回正确的元素

关于“jQuery 1.8.2 发布”的 17 个想法

  1. 哦,我看到公告中提到它们已处于“高度戒备状态”(我几个小时前就注意到这个问题了,而且直到现在才看到这篇公告页面,所以就留下了评论);就我而言,我甚至不知道 1.8.2 是新发布的:我只是需要当前版本的 jQuery,而当链接无法访问时感到困惑。 对之前的帖子表示歉意。

  2. 看起来 jQuery.buildFragment 存在回归问题,下面的行在 1.8.2 中被删除了

    // 确保 attr 对象不会错误地作为文档对象
    5930 // Chrome 和 Firefox 似乎允许这种情况发生,并将抛出异常
    5931 // 修复 #8950
    5932 if ( typeof context.createDocumentFragment === “undefined” ) {
    5933 context = document;
    5934 }

    这会导致 context 有时会变成“window”对象,并且没有“createDocumentFragment”方法!! 请确认!

  3. @Wayne Ye,即使这些行已被删除,最初提交的测试用例仍然在 1.8.2 中通过

    http://jsfiddle.net/YYqgM/

    所以看起来你没事。 在没有深入研究代码的情况下,我不知道为什么删除这些行不会导致回归,但显然它在其他部分得到了修复。

  4. 我尝试从1.7.2更新到1.8.2,但它破坏了我的应用程序。

    该应用程序使用表格单元格内的 iframe 编码。iframe 在 document.ready 和 window.resize 时调整大小以适应窗口。似乎 1.8.2 不允许表格单元格随着 iframe 调整大小。

    我认为这是一个可以相当简单地解决的问题,但我希望提出这个问题。我将感谢一些反馈 - 无论是这是一个合理的问题,还是我的 javascript 很懒惰,我需要手动处理所有单个元素的大小调整。

  5. Shay Vajda 说:

    嗨,

    我刚刚发现 1.8.1 和新的 1.8.2 之间存在不一致。
    在 1.8.1 上,结果是 3。
    在 1.8.2 上,结果是 0。

    0
    1
    2

    alert($(‘#container’).children(‘div:gt(-1)’).length);

  6. Jquery 在我的 aspx 页面中无法正常工作,而几天前它还能正常工作……请给我一个解决方案,它没有错误也没有异常。