jQuery 3.6.3 发布:快速选择器修复
上周,我们发布了 jQuery 3.6.2。该版本包含了一些更改,但最重要的一个解决了大多数浏览器中引入的一些新选择器(例如 :has())存在的问题。我们希望尽快发布 jQuery 3.6.3,因为有人报告了一个问题,揭示了我们最初修复方案中的一个问题。以下是更详细的信息。
像往常一样,该版本可在 我们的 CDN 和 npm 包管理器上获取。其他第三方 CDN 可能也会很快提供,但请记住,我们无法控制它们的发布计划,它们需要一些时间。以下是 jQuery 3.6.3 的亮点。
正确使用 CSS.supports
在 :has 出现的问题,该问题在 jQuery 3.6.2 中得到修复之后,我们开始使用 CSS.supports( "selector(SELECTOR)") 来确定将选择器直接传递给 querySelectorAll 时是否有效。当 CSS.supports 返回 false 时,jQuery 会回退到它自己的选择器引擎 (Sizzle)。显然,我们的实现存在一个错误。在 CSS.supports( "selector(SELECTOR)") 中,SELECTOR 需要是一个 <complex-selector> 而不是一个 <complex-selector-list>。例如
CSS.supports("selector(div)"); // true
CSS.supports("selector(div, span)"); // false
这意味着所有复杂的选择器列表都通过 Sizzle 而不是 querySelectorAll。这在大多数情况下并非问题,但这意味着一些浏览器中支持但 Sizzle 中不支持的第四级选择器,例如 :valid,如果它是选择器列表的一部分(例如 "input:valid, div"),将不再起作用。值得注意的是,这目前仅影响 Firefox,但随着浏览器推出对 CSS.supports 的更改,所有浏览器都会出现这种情况。
现在这已在 jQuery 3.6.3 中得到修复,并且这是此版本中唯一的实际更改。
升级
我们预计从 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.3.js
https://code.jqueryjs.cn/jquery-3.6.3.min.js
您也可以从 npm 获取此版本
npm install jquery@3.6.3
精简版
有时您不需要 ajax,或者您更喜欢使用许多专注于 ajax 请求的独立库。而且,通常使用 CSS 和类操作进行 Web 动画更简单。除了包含 ajax 和效果模块的常规 jQuery 版本之外,我们还发布了一个“精简”版本,该版本排除了这些模块。如今,jQuery 的大小很少成为加载性能问题,但精简版本比常规版本小约 6k 压缩字节。这些文件也可用在 npm 包和 CDN 上
https://code.jqueryjs.cn/jquery-3.6.3.slim.js
https://code.jqueryjs.cn/jquery-3.6.3.slim.min.js
这些更新已经作为 npm 和 Bower 上的当前版本提供。有关获取 jQuery 的所有方式的信息,请访问 https://jquery.org.cn/download/。公共 CDN 今天会收到其副本,请给它们几天时间来发布文件。如果您急于开始,请使用我们 CDN 上的文件,直到它们有机会更新为止。
感谢
感谢所有参与此版本发布的人员,包括提交补丁、报告错误或进行测试的人员,包括 Michal Golebiowski-Owczarek 和整个 jQuery 团队。
变更日志
完整更改日志:3.6.3