上周,我们发布了 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 请求的众多独立库之一。而且,通常使用 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://jqueryjs.cn/download/。公共 CDN 会在今天收到其副本,请给他们几天时间来发布文件。如果您急于快速开始,请使用我们 CDN 上的文件,直到他们有机会更新。
感谢
感谢所有参与此版本发布的人员,包括提交补丁、报告错误或进行测试的人员,其中包括Michal Golebiowski-Owczarek 和整个 jQuery 团队。
更改日志
完整更改日志:3.6.3