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"))时会抛出错误,而不是返回未定义。这在 3.6.2 中已修复。与之相关的是,我们还确保仅包含空白字符的值在所有浏览器中都返回相同内容。规范要求 CSS 变量值被修剪,但浏览器在修剪方面不一致。我们现在为仅包含空白字符的值返回未定义,以使其与旧版 jQuery 和不同浏览器保持一致。

.contains() 与 <template>

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

不是拉尔夫打破了互联网

当 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 和类操作组合来进行网页动画更简单。除了包含 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://jqueryjs.cn/download/。公共 CDN 将在今天收到其副本,请给他们几天时间发布文件。如果您迫切需要快速入门,请使用我们 CDN 上的文件,直到它们有机会更新。

感谢

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

变更日志

完整变更日志:3.6.2

CSS

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

选择器

测试

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

评论已关闭。