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 中被修复,它也是这个版本中唯一的功能变化。
下载
从 npm 获取此版本:
npm install [email protected]
更多详情可查看发布公告。
标签:jQuery,selector,3.6,supports,选择器,CSS From: https://www.cnblogs.com/lzhdim/p/16996044.html