jQuery 3.6.2 刚于上周发布,该版本包含了几个变化,其中最重要的是解决了在大多数浏览器中引入的一些新选择器的问题,如 :has()。现如今,jQuery 3.6.3 也已发布;原因在于有一个问题被报告,揭示了原来的修复问题。新版本亮点更新内容如下:
正确使用CSS.supports
在jQuery 3.6.2修复了:has的问题后,开发团队开始使用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中不支持的 level 4 选择器,如:valid,如果它是选择器列表的一部分(例如 "input:valid, div"),则不再起作用。需要注意的是,目前这只影响到Firefox;但随着他们推出对 CSS.support 的更改后,它将影响所有的浏览器。
这个问题现在已经在jQuery 3.6.3中被修复,它也是这个版本中唯一的功能变化。
下载
- https://code.jquery.com/jquery-3.6.3.js
- https://code.jquery.com/jquery-3.6.3.min.js
从 npm 获取此版本:
npm install [email protected]
更多详情可查看发布公告。