jQuery 3.3.0 – 一束芬芳的弃用和…那是一个新特性吗?

发布于

距离上次 jQuery 版本发布已经有一段时间了,但核心团队并没有闲着。我们为您带来了一个全新的次要版本,它甚至还包含一个新特性!

.addClass().removeClass().toggleClass() 方法现在接受一个类数组


jQuery(elem).addClass([
   'dave', 'michał', 
   'oleg', 'richard', 
   'jason', 'timmy'
]);

通常情况下,jQuery 不会添加任何新功能。我们更倾向于关注可以删除什么,而不是可以添加什么。但是,当我们看到这个功能请求时,我们想知道它为什么以前没有被添加。

如果您从 jQuery 3.0+ 升级,应该不会出现兼容性问题。如果您还没有升级到 jQuery 3+,请查看 3.0 升级指南jQuery Migrate 3.0 插件 将帮助您识别代码中的兼容性问题。

请尝试这个新版本,并 告诉我们您遇到的任何问题

弃用

在这个版本中,我们修剪了一些玫瑰、百合和向日葵。其中一些气味比其他一些更香,但将它们放在一起,你就得到了一束美丽的…弃用花

这些函数随着时间的推移,要么失去了一些用处,要么被认为不如可用的替代方案,要么从一开始就旨在用于内部使用。虽然这些函数中的大多数将在 jQuery 4.0 中被删除,但值得注意的是,我们并不认为弃用一个方法就意味着它将被删除;这意味着我们鼓励使用替代方法。例如,.click() 等事件别名可能永远不会被删除。

命令行测试

伟大的 Timo Tijhof 已经让 使用 grunt 和 karma 在命令行上运行所有 jQuery 测试 成为可能。这是我们一直想要做的事情,但由于需要 php 服务器来运行 ajax 测试,所以它很复杂。感谢 Timo 使其成为现实!

注意:jQuery 不再在 PhantomJS 1.x 上运行任何测试。

下载

您可以从 jQuery CDN 获取文件,或直接链接到它们

https://code.jqueryjs.cn/jquery-3.3.0.js

https://code.jqueryjs.cn/jquery-3.3.0.min.js

您也可以从 npm 获取此版本

npm install jquery@3.3.0

精简版本

有时您不需要 ajax,或者您更喜欢使用许多专注于 ajax 请求的独立库之一。而且通常情况下,使用 CSS 和类操作的组合来完成所有 web 动画更加简单。除了包含 ajax 和效果模块的常规 jQuery 版本之外,我们还发布了一个“精简”版本,它排除了这些模块。如今,jQuery 的大小很少是加载性能问题,但精简版本比常规版本小约 6k gzip 字节——24k 对 30k。这些文件也包含在 npm 包和 CDN 中

https://code.jqueryjs.cn/jquery-3.3.0.slim.js
https://code.jqueryjs.cn/jquery-3.3.0.slim.min.js

这些更新已经作为 npm 和 Bower 上的当前版本可用。有关获取 jQuery 的所有方式的信息,请访问 https://jqueryjs.cn/download/。公共 CDN 今天将收到其副本,请给他们几天时间来发布文件。如果您迫切希望快速上手,请使用我们 CDN 上的文件,直到它们有机会更新。

感谢

感谢所有参与此版本发布的人,包括通过提交补丁、报告错误或进行测试,包括 Andreas Solledar、Basil Belokon、Boom Lee“CDAGaming”Dave MethvinErik LaxHenry ZhuJason BedardJordan BelandMatan Kotler-BerkowitzMichał Gołębiowski-OwczarekNilton CesarPierre SpringRichard GibsonSaptak SenguptaShashanka NatarajSteve MaoTimo TijhofFaisal Irfan Yar Khan 以及整个 jQuery 团队。

 

更改日志

GitHub 更改日志: 3.3.0 中修复的问题 | 所有更改

Ajax

  • 为所有请求添加 ontimeout 处理程序 (#3586262acc6f)
  • 在无实体正文请求上不要处理非字符串数据属性 (#3438d7237896)

属性

  • 功能:允许在 add/remove/toggleClass 中使用数组参数 (#353280f57f8a)

构建

  • 在 Node.js 8 上测试,停止在 Node.js 7 上测试 (bef46a2a)
  • 更新到 Babel 7,使用 for-of 插件而不是 preset-es2015 (90bac40a)
  • 删除 package-lock.json,将其添加到 .gitignore (#37927037facc)
  • 在 Node.js 9 上测试 (3e902a81)
  • 修复 Android 4.0 中的 UglifyJS 输出;更新 uglify (#3743c9efd11f)

核心

CSS

  • 从 cssProps 中删除浮动映射 (bbf33428)
  • 使用非默认缩放比例正确设置支持属性 (#3808f00a0759)
  • 检测更多错误地报告为百分比的 WebKit 样式 (#377794ddf620)
  • 在计算之前检索内联样式 (c4598da4)
  • 避免来自 CSS 上限的单位转换干扰 (#2144692f9d4d)

延迟

尺寸

文档

  • 创建 CODE_OF_CONDUCT.md (e84d3bc0)
  • 更新到 HTML 规范的链接,用于 stripAndCollapse (#3594) (e1b1b2d7)

事件

过滤

操作

  • 使用 `.children` 来选择 tbody 元素 (a88b48ea)
  • 添加对具有模块类型的脚本的支持 (#38715d3a968e)

偏移量

支持

关于“jQuery 3.3.0 - 一束香气扑鼻的弃用和…那是新功能吗?”的思考