JQuery3 的新变化
1. for-of 循环
for-in 循环不被推荐遍历数组,forEach 循环不能中断,for-of 循环(ES6)则弥补了前两者的不足,又添加了更多拓展(比如能遍历字符串,DOM 元素等)
因此 jquery3 也加入了 for-of 循环的支持,即:
var $inputs = $('input'), i = 0;
for(var input of $inputs) {
input.id = 'input-' + i++;
}
注意:可见上例 for-of 中的 input 是DOM 元素而不是 jquery 元素
2. $.get 和 $.post 支持对象传参
// 以前我们通常这样写:
$.post('test.php', { name: 'David Guetta', age: 49 }, function (data) {
console.log(data);
}); // jQuery3 中可以这样写:
$.post({
url: 'test.php',
data: { name: 'David Guetta', age: 49 },
success: function (data) {
console.log(data);
}
});
这个变化其实我并未看懂为什么,只是比 $.ajax 少个 method:'POST' 吗
3. 动画改用 requestAnimationFrame 方法渲染
以往 jquery 使用的是 setInterval 每 16.7ms 更改元素属性值来进行动画渲染的,很容易动画卡顿和丢帧,
而 requestAnimationFrame 的优点已人人皆知,因此 jquery3 对动画进行了优化,使动画更流畅,和减少了 CPU 消耗。
4. unwrap() 添加可选参数 selector
<div class="wrap"><p></p></div>
<div><p></p></div>
// 移除 p 元素的 class="wrap" 的父元素
// 上面 html 中 只有第一个 div 会被移除
$('p').unwrap('.wrap');
5. :visible 和 :hidden
空标签和高度为零的元素也被认为是 :visible 了
<div></div>
<br>
<span></span>
// 在 jQuery1.x 中控制台输出 1
// 在 jQuery3 中控制台输出 3
console.log($('body :visible').length)
6. data() 的键格式改为了驼峰格式
严格遵守 Dataset API 规范,以后我们就该写 data-myProperty 而不是 data-my-property 了,否则用 jquery3 获取时就搞得很麻烦了。
7. 正式支持 SVG documents
获取 svg 元素,使用 addClass() 等方法都是可以的哟。
8. 废弃了 bind()、unbind()、delegate() 和 undelegate()
废弃是还存在于源码中但待到时机成熟就移除,所以事件绑定和解绑我们还是用 on() 和 off() 吧。
9. 移除了 load()、unload() 和 error() 方法
早在 1.8 时就被废弃了,因为实在被误解得太厉害,又实在不方便操作,我倒是举手欢迎移除的,但一直却没能找到可以替代该功能的方法。
10. 移除 context、support 和 selector 属性
去掉了 context 属性但还是可以选用 context() 方法呀。
selector 属性很鸡肋呀,我需要知道 body>div.xxx>p span 这条字符串干什么呢。
至于 $.support,官方说移除了, 但好像并没有呀,应该是我理解错了把。
11. width() 等保留为浮点数而非整数
以前获取到的 width() / height() 等都是整数,有时会造成一丢丢误差(比如 33.3333% 那样的),所以现在它将返回浮点数。
12. Deferred 对象
这个我完全没用过,而且也开始接触 Promise 了,所以忘记它也不失为一个办法。
JQuery3 的新变化的更多相关文章
- [转]Material Design Library 23.1.0的新变化与代码实战
Design Library出来已经快有一个月了,当时大概看了一下介绍这个新版本变化的译文,内容不多,给我印象最深的就是Percent lib.AppBarLayout 和NavigationView ...
- Material Design Library 23.1.0的新变化与代码实战
Design Library出来已经快有一个月了,当时大概看了一下介绍这个新版本变化的译文,内容不多,给我印象最深的就是Percent lib.AppBarLayout 和NavigationView ...
- 从iOS 11 UI Kit中谈谈iOS 11的新变化
北京时间9月20日凌晨1点,iOS 11终于迎来了正式版的推送,相信各位小伙伴已经在第一时间进行了升级.iOS 11毫无疑问是一次大规模的系统更新,UI.系统内核.锁屏等多方面都进行了不同程度的改进. ...
- Delphi XE7 GPS控件android下的新变化
Delphi XE7 GPS控件的Android新变化 GPS控件的Accuracy可以起作用了,Accuracy>0时: 1--100:ACCURACY_HIGH 101--500 ...
- 前端面试之HTML5的新变化
前端面试之HTML5的新变化 H5新增语义化标签 头部标签 <header> :头部标签 <nav> :导航标签 <article> :内容标签 <secti ...
- jQuery3的新特性
前言:自从react,vue等方便的新框架出现后,好多大公司已经摒弃了jquery,但是大部分的公司还在使用,并且jquery的版本还在一直更新中.jquery2.x版本将不再支持IE6/7/8浏览器 ...
- iOS8.3发布了Swift 1.2带来哪些新变化
苹果前几日在面向开发者推送iOS 8.3 Beta的同时,还发布了版本号为6D520o的Xcode 6.3 Beta,其中便包含了iOS 8.3 Beta和OS X v10.10 SDK,并进一步提升 ...
- [译] OpenStack Kilo 版本中 Neutron 的新变化
OpenStack Kilo 版本,OpenStack 这个开源项目的第11个版本,已经于2015年4月正式发布了.现在是个合适的时间来看看这个版本中Neutron到底发生了哪些变化了,以及引入了哪些 ...
- [译] OpenStack Liberty 版本中的53个新变化
一个新的秋季,一个新的OpenStack 版本.OpenStack 的第12个版本,Liberty,在10月15日如期交付,而且目前发行版本已经备好了.那么我们期望能从过去六个月时间的开发中获得些什么 ...
随机推荐
- GitBlit (1)-- 在linux 安装 GitBlit 并运行
Git是一款注重速度.数据完整性.分布式支持和非线性工作流的分布式版本控制工具.Git最初由Linus Torvalds在2005年为Linux内核开发而设计,如今已经成为被广泛接受的版本控制系统. ...
- android studio中如何替换gradle以防下载卡住
我们在开发过程中需要导入别人的demo工程,那么你有事就会下载gradle构建文件,然而有时下载会一直卡住,那么这时候你就会想,我自己用迅雷去下载gradle文件然后不就行了,然后问题就来了 1.我们 ...
- 简简单单删除所有.svn目录
当使用了svn版本控制系统后每个目录下都会有一个.svn目录存在,开发完当交付产品或者上传到服务器时一般要把这些目录删除,其实在linux删除这些目录是很简单的,命令如下 find . -type d ...
- Android之——JNI配置C语言打印Logcat信息
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47425073 这篇文章给大家介绍一下在JNI中怎样为C语言配置打印Logcat信息 ...
- Laravel5.1 数据库--DB运行原生SQL
Laravel操作数据库有三种:DB原生SQL.构建器.Model.这三种依情况而决定使用哪种更合适. 那么今儿咱就从DB原生SQL说起: 1 用DB门面原生SQL语句操作 用DB门面操作的话呢 无非 ...
- linux中使用vi 打开文件时,能显示行号
方法一: 1.显示当前行行号,在VI的命令模式下输入 :nu 2.显示所有行号,在VI的命令模式下输入 :set nu方法二: 使用vi编辑~/.vimrc文件,在该文件中加入一行" ...
- [ACM] hdu 3923 Invoker (Poyla计数,高速幂运算,扩展欧几里得或费马小定理)
Invoker Problem Description On of Vance's favourite hero is Invoker, Kael. As many people knows Kael ...
- 【Python】Python获取命令行參数
有时候须要用同一个Python程序在不同的时间来处理不同的文件,此时假设老是要到Python程序中去改动输入.输出文件名称.就太麻烦了. 而通过Python获取命令行參数就方便多了.以下是我写得一个小 ...
- java随手记
javaagent可以hook字节码处理 java -javaagent:jebloader.jar -jar xxx.jar 结合javassist,可以动态替换方法内容 import java.i ...
- #1560 : H国的身份证号码II(dp+矩阵快速幂)
#1560 : H国的身份证号码II 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 H国的身份证号码是一个N位的正整数(首位不能是0).此外,由于防伪需要,一个N位正整 ...