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 中不支持的 4 级选择器(如: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 请求的众多独立库之一。而且,对于 Web 动画,使用 CSS 和类操作的组合通常更简单。除了包含 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://jqueryjs.cn/download/。公共 CDN 今天会收到它们的副本,请给他们几天时间来发布文件。如果您急于快速上手,请使用我们 CDN 上的文件,直到它们有机会更新。
感谢
感谢所有参与此版本发布的人,包括提交补丁、报告错误或测试的人,包括 Michal Golebiowski-Owczarek 和整个 jQuery 团队。
更改日志
完整更改日志:3.6.3