jQuery 3.7.1 发布:可靠的表格行尺寸
jQuery 3.7.1 已发布!此版本修复了 jQuery 3.6.0 中的一个回归问题,该问题导致 Chrome 和 Safari 中 <tr /> 元素的尺寸四舍五入。此外,一个(主要)内部的 Sizzle 方法 jQuery.find.tokenize,原本在 jQuery 对象上,在我们在 jQuery 3.7.0 中移除 Sizzle 时被意外移除。该方法已恢复。
像往常一样,该版本可在 我们的 cdn 和 npm 包管理器上获取。其他第三方 CDN 可能也会很快提供,但请记住,我们无法控制他们的发布计划,他们需要一些时间。以下是 jQuery 3.7.1 的亮点。
表格行支持测试
jQuery 3.6.0 引入了一项更改,用于支持测试,以应对 Firefox 的突然故障,Firefox 开始在 <tr /> 元素的计算尺寸中包含表格边框。这 可能实际上是正确的,但 Firefox 是唯一这样做的一个浏览器。然而,新的支持测试没有考虑到 CSS 中包含 * { box-sizing: border-box; } 的页面。因此,在所有浏览器中的这些页面上,支持测试都失败了。结果是回退到使用 outerWidth 和 outerHeight,不幸的是,它不会返回小数。支持测试现已修复,Chrome 和 Safari 的先前行为已恢复,但 Firefox 和 IE 将继续返回整数。
重新暴露 Sizzle 中的方法
jQuery 在 jQuery 3.7.0 中内联了 Sizzle 的大部分代码,为未来 jQuery 选择器引擎的更大更改做准备。在大多数情况下,没有功能上的变化,但我们意外地私有化了一个原本是公开的方法。虽然 jQuery.find.tokenize 没有文档,但一些代码依赖于它可用。该方法现已恢复。
升级
我们预计从 jQuery 3.0+ 版本升级时不会出现兼容性问题。要升级,请查看新的 3.5 升级指南。如果您尚未升级到 jQuery 3+,请先查看 3.0 升级指南。
jQuery Migrate 插件 将帮助您识别代码中的兼容性问题。请尝试这个新版本,并 告知我们您遇到的任何问题。
如果您还无法升级到 3.5+,Daniel Ruf 已经提供了 先前 jQuery 版本的补丁。
下载
您可以从 jQuery CDN 获取文件,或直接链接到它们
https://code.jqueryjs.cn/jquery-3.7.1.js
https://code.jqueryjs.cn/jquery-3.7.1.min.js
您也可以从 npm 获取此版本
npm install jquery@3.7.1
精简版
有时您不需要 ajax,或者您更喜欢使用许多专注于 ajax 请求的独立库。而且,通常使用 CSS 和类操作进行 Web 动画更简单。除了包含 ajax 和效果模块的常规 jQuery 版本之外,我们还发布了一个“精简”版本,该版本排除了这些模块。如今,jQuery 的大小很少成为加载性能问题,但精简版本比常规版本小约 6k 压缩字节。这些文件也可用在 npm 包和 CDN 上
https://code.jqueryjs.cn/jquery-3.7.1.slim.js
https://code.jqueryjs.cn/jquery-3.7.1.slim.min.js
这些更新已经作为 npm 和 Bower 上的当前版本提供。有关获取 jQuery 的所有方式的信息,请访问 https://jquery.org.cn/download/。公共 CDN 今天会收到其副本,请给它们几天时间来发布文件。如果您急于开始,请使用我们 CDN 上的文件,直到它们有机会更新为止。
感谢
感谢所有参与此版本发布的人员,包括提交补丁、报告错误或测试的人员,包括 Gabriela Gutierrez、Michal Golebiowski-Owczarek、Timo Tijhof、Dimitri Papadopoulos Orfanos 和整个 jQuery 团队。
我们在 Mastodon 上!
jQuery 现在拥有自己的 Mastodon 帐户。从现在开始,我们将同时在 Twitter 和 Mastodon 上发布内容。您可能还对关注一些拥有 Mastodon 帐户的团队成员感兴趣。
jQuery: https://social.lfx.dev/@jquery
mgol: https://hachyderm.io/@mgol
timmywil: https://hachyderm.io/@timmywil
变更日志
完整变更日志: 3.7.1
构建
- 在 `grunt` 上生成精简版本并对其运行 `compare_size` (763ade6d)
- 确保 `*.cjs` 和 `*.mjs` 文件也使用 UNIX 换行符 (3c18c1f3)
- 切换 timmywil 的首选电子邮件 (72ae577c)
- 构建:将 actions/checkout 从 3.5.2 升级到 3.5.3 (a370d7df)
- 通过提交 SHA 引用 GitHub Actions (#5266, 0ea85dad)
- 在 Node.js 20 上测试,停止在 Node.js 14 和 19 上测试 (b473729d)
- 将 3.x-stable 版本更新到 3.7.1-pre. (64460dac)
核心
CSS
已弃用
- 使用非弃用的方法定义 `.hover()` (7287894f)
文档
- 修复 codespell 发现的错别字 (4a29888c)
- 删除 readme 中的过时的 gitter 徽章 (141518e9)
- 删除 PR 模板中的“Grunt 构建”部分 (992a6653)
发布
选择器
- 仅在 IE 和 Edge Legacy 中附加 unload 处理程序 (#5281, 87467a6f)
- 重新暴露 jQuery.find.tokenize (3.x 版本) (#5259, 13a870b6)