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()
等事件别名可能永远不会被删除。
- jQuery.now (#2959,909e0c99)
- jQuery.isWindow (#3629,c18d6085)
- jQuery.camelCase(#3384,64a28928)
- jQuery.proxy(不打算删除)(#2958,3a8e4474)
- jQuery.type (#3605,1ea092a5)
- jQuery.isNumeric (#2960,c4494d4a)
- jQuery.isFunction (#3609,3d732cca)
- 事件别名 (#3214,022b69a4)
命令行测试
伟大的 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 Methvin、Erik Lax、Henry Zhu、Jason Bedard、Jordan Beland、Matan Kotler-Berkowitz、Michał Gołębiowski-Owczarek、Nilton Cesar、Pierre Spring、Richard Gibson、Saptak Sengupta、Shashanka Nataraj、Steve Mao、Timo Tijhof、Faisal Irfan Yar Khan 以及整个 jQuery 团队。
更改日志
GitHub 更改日志: 3.3.0 中修复的问题 | 所有更改
Ajax
属性
构建
- 在 Node.js 8 上测试,停止在 Node.js 7 上测试 (bef46a2a)
- 更新到 Babel 7,使用 for-of 插件而不是 preset-es2015 (90bac40a)
- 删除 package-lock.json,将其添加到 .gitignore (#3792,7037facc)
- 在 Node.js 9 上测试 (3e902a81)
- 修复 Android 4.0 中的 UglifyJS 输出;更新 uglify (#3743,c9efd11f)
核心
- 弃用 jQuery.now (#2959,909e0c99)
- 弃用 jQuery.isWindow (#3629,c18d6085)
- 使 camelCase 函数仅供内部使用 (#3384,64a28928)
- 弃用 jQuery.proxy(不打算删除)(#2958,3a8e4474)
- 弃用 jQuery.type (#3605,1ea092a5)
- 弃用 jQuery.isNumeric (#2960,c4494d4a)
- 更新 isFunction 以处理不寻常的 @@toStringTag 输入 (#3600,#3596,a16339b8)
- 弃用 jQuery.isFunction (#3609,3d732cca)
CSS
- 从 cssProps 中删除浮动映射 (bbf33428)
- 使用非默认缩放比例正确设置支持属性 (#3808,f00a0759)
- 检测更多错误地报告为百分比的 WebKit 样式 (#3777,94ddf620)
- 在计算之前检索内联样式 (c4598da4)
- 避免来自 CSS 上限的单位转换干扰 (#2144,692f9d4d)
延迟
尺寸
- 改进 offsetWidth/offsetHeight 回退 (#3698,#3602,a4957849)
- 在“填充”框中包含滚动边距 (#3589,80f1c823)
- 对内联元素回退到 offsetWidth/Height (#3571,473d2ea7)
- 不要信任非像素计算的宽度/高度 (#3611,3cf1d14c)
- 检测并考虑内容框尺寸处理错误 (#3699,3fcddd6e)
您对版本 4 的计划是什么?