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 中的一个突然出现的错误,该错误开始在 <tr /> 元素的计算尺寸中包含表格边框。这 可能实际上是正确的,但 Firefox 是唯一这样做浏览器。但是,新的支持测试没有考虑具有 * { box-sizing: border-box; } 的页面在 CSS 中。因此,支持测试在所有浏览器的这些页面上失败。结果是回退到使用 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 和类操作组合来进行网页动画通常更简单。除了包含 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://jqueryjs.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 (#52660ea85dad)
  • 在 Node.js 20 上测试,停止在 Node.js 14 和 19 上测试 (b473729d)
  • 将 3.x-stable 版本更新到 3.7.1-pre。 (64460dac)

核心

  • 修复 jQuery.text() 在 HTMLDocument 对象上的回归问题 (#526444c56f87)

CSS

  • 使 reliableTrDimensions 支持测试适用于 Bootstrap CSS (3.x 版本) (#5270a288838c)

已弃用

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

文档

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

发布

选择器

  • 仅在 IE 和 Edge Legacy 中附加卸载处理程序 (#528187467a6f)
  • 重新公开 jQuery.find.tokenize (3.x 版本) (#525913a870b6)

测试

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