jQuery 3.6.2 发布!

发布于 作者

你可能没有预料到这么快又有一个版本发布,但 jQuery 3.6.2 已经到来!此版本发布的主要动力是 Chrome 中引入了一些新的选择器。更多信息如下。

像往常一样,该版本可在 我们的 CDN 和 npm 包管理器上获取。其他第三方 CDN 可能也会很快提供,但请记住,我们无法控制他们的发布计划,他们需要一些时间。以下是 jQuery 3.6.2 的亮点。

未定义的和仅包含空白字符的 CSS 变量

jQuery 3.6.1 引入了一个小小的回归,即尝试检索不存在的自定义 CSS 属性的值(例如 $elem.css("--custom"))时会抛出错误,而不是返回 undefined。这已在 3.6.2 中修复。相关地,我们还确保仅包含空白字符的值在所有浏览器中返回相同的结果。规范要求对 CSS 变量值进行修剪,但浏览器在修剪方面并不一致。我们 现在为仅包含空白字符的值返回 undefined,使其与旧版本的 jQuery 和不同的浏览器保持一致。

.contains() 与 <template>

最近 报告了一个问题,表明 <template> 的 document 属性的 documentElement 属性设置为 null,符合规范。虽然从语义上讲,模板尚未绑定到文档,但这造成了一个不寻常的情况,尤其是在 jQuery.contains() 和任何依赖它的方法中。这包括操作和选择器方法。幸运的是,修复很简单。

不是 Ralph 搞坏了互联网

当 Chrome 最近引入了一些新的选择器,其中最重要的是 :has() 时,互联网经历了一点震动。这是一个受欢迎的补充,也是 jQuery 团队所庆祝的,但规范的更改意味着 :has() 使用了所谓的“宽容解析”。本质上,即使 :has() 的参数无效,浏览器也会返回没有结果,而不是抛出错误。这在 :has() 包含另一个 jQuery 选择器扩展(例如 :has(:contains("Item")))或包含自身(:has(div:has(a)))的情况下存在问题。Sizzle 依赖于这样的错误来知道何时信任原生 querySelectorAll 以及何时通过 Sizzle 运行选择器。曾经有效的选择器在所有 jQuery 版本中都失效了,追溯到最早的 jQuery 版本。

然而,这场小小的戏剧并没有持续太久。Chrome 团队 迅速实施了一个解决方法,以修复大多数情况下之前的 jQuery 版本。Safari 对 :has() 的实现方式略有不同,并且 没有出现相同的问题但是,仍然有一个 重要的问题 尚未解决,以确定如何在 CSS 规范本身中解决这个问题。 CSSWG 此后已 解决了该问题

jQuery 已经采取措施,以确保 任何宽容解析都不会破坏未来的 jQuery 版本,即使之前的 jQuery 版本仍然受到影响。

升级

我们预计从 jQuery 3.0+ 版本升级时不会出现兼容性问题。要升级,请查看新的 3.5 升级指南。如果您尚未升级到 jQuery 3+,请先查看 3.0 升级指南

jQuery Migrate 插件 将帮助您识别代码中的兼容性问题。请尝试这个新版本,并 告知我们您遇到的任何问题

如果您还无法升级到 3.5+,Daniel Ruf 已经提供了 先前 jQuery 版本的补丁

下载

您可以从 jQuery CDN 获取文件,或直接链接到它们

https://code.jqueryjs.cn/jquery-3.6.2.js

https://code.jqueryjs.cn/jquery-3.6.2.min.js

您也可以从 npm 获取此版本

npm install jquery@3.6.2

精简版

有时您不需要 ajax,或者您更喜欢使用许多专注于 ajax 请求的独立库。而且,通常使用 CSS 和类操作进行 Web 动画更简单。除了包含 ajax 和效果模块的常规 jQuery 版本之外,我们还发布了一个“精简”版本,该版本排除了这些模块。如今,jQuery 的大小很少成为加载性能问题,但精简版本比常规版本小约 6k 压缩字节。这些文件也可用在 npm 包和 CDN 上

https://code.jqueryjs.cn/jquery-3.6.2.slim.js

https://code.jqueryjs.cn/jquery-3.6.2.slim.min.js

这些更新已经作为 npm 和 Bower 上的当前版本提供。有关获取 jQuery 的所有方式的信息,请访问 https://jquery.org.cn/download/。公共 CDN 今天会收到其副本,请给它们几天时间来发布文件。如果您急于开始,请使用我们 CDN 上的文件,直到它们有机会更新为止。

感谢

感谢所有参与此版本发布的人员,包括提交补丁、报告错误或进行测试的人员,包括 sashashuraAnders KaseorgMichal Golebiowski-Owczarek 和整个 jQuery 团队。

变更日志

完整变更日志: 3.6.2

CSS

  • 为仅包含空白字符的 CSS 变量值返回 undefined (#5120) (8bea1dec)
  • 不要修剪未定义的自定义属性的空白字符 (#5105, c0db6d70)

选择器

  • 操作:修复模板内容中的 DOM 操作 (#5147, 5318e311)
  • 将 Sizzle 从 2.3.7 更新到 2.3.8 (#5147, a1b7ae3b)
  • 将 Sizzle 从 2.3.6 更新到 2.3.7 (#5098, ee0fec05)

Tests

  • 删除针对 Firefox XML 解析问题的解决方法 (965391ab)
  • 使 Ajax 测试在 iOS 9 中通过 (d051e0e3)

评论已关闭。