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; } 的页面。因此,在所有浏览器中的这些页面上,支持测试都失败了。结果是回退到使用 outerWidthouterHeight,不幸的是,它不会返回小数。支持测试现已修复,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 GutierrezMichal Golebiowski-OwczarekTimo TijhofDimitri 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)

核心

  • 修复 HTMLDocument 对象上 jQuery.text() 中的回归问题 (#5264, 44c56f87)

CSS

  • 使可靠的 trDimensions 支持测试与 Bootstrap CSS (3.x 版本) 协同工作 (#5270, a288838c)

已弃用

  • 使用非弃用的方法定义 `.hover()` (7287894f)

文档

  • 修复 codespell 发现的错别字 (4a29888c)
  • 删除 readme 中的过时的 gitter 徽章 (141518e9)
  • 删除 PR 模板中的“Grunt 构建”部分 (992a6653)

发布

选择器

  • 仅在 IE 和 Edge Legacy 中附加 unload 处理程序 (#5281, 87467a6f)
  • 重新暴露 jQuery.find.tokenize (3.x 版本) (#5259, 13a870b6)

Tests

  • 禁用“:lang 尊重转义反斜杠”测试 (#5271, 5aa7d93a)
  • 跳过 IE 9 中的新 `.text()` 测试 (b84146ce)

评论已关闭。