jQuery3的新特性
前言:自从react,vue等方便的新框架出现后,好多大公司已经摒弃了jquery,但是大部分的公司还在使用,并且jquery的版本还在一直更新中。jquery2.x版本将不再支持IE6/7/8浏览器。现在更新到的最新版本3.x增加了一些新特性,也摒弃了一些特性。接下来就总结一下:
一,增加的一些特性
1,for...of循环
可以用来遍历一个jquery集合所有的DOM元素。
假设你想给页面中每个input元素分配一个ID,在jQuery3之前,你可以这样写:
var inputs = $('input');
for(var i=0;i<inputs.length;i++){
inputs[i].id = 'input-'+i;
}
jQuery3:
var inputs = $('input');
var i=0;
for(var input of inputs){
input.id = 'input-'+i++;
}
2,采用requestAnimationFrame()来实现动画
IE10以上的版本都支持这个函数
3,unwrap()
该方法增加了一个可选的选择器参数
unwrap([selector])
有了这一变化,你就可以传入包含一个选择器表达式的字符串,在父元素进行匹配,如果存在匹配,匹配的子元素被解包,不进行任何操作。
二,被修改的一些特性
1,:visible和:hidden
修改了过滤器的含义,只要元素具有任何布局,包括那些宽度或高度为0的情况,元素被认为是:visible。比如说 <br/>元素和没有内容的内联元素可以通过:visible过滤器进行选择
<div></div>
<br />
console.log($('body:visible').length);
jquery 1.x 2.x中输出的结果是0, jquery 3中结果是2。
2,data()
该调整主要是为了让该方法符合DatasetAPI规范,jquery3 强所有属性的键都该驼峰式大小写形式
<div id="container"></div>
var $elem = $('#container');
$elem.data({
'my-property':'hello'
});
console.log($elem.data());
在控制台上获得以下结果:{my-property:"hello"}
在jquery3 {myProperty:"hello"}
3,Deferred对象
jquery 1.x 2.x 中 ,传入deferred中的回调函数中如果出现未捕获异常,会导致程序停止执行。而原生的Promise对象并非如此,它会抛出异常,并不断向上冒泡,直至到达window.onerror。
jquery3遵循原生的Promise对象的模式,因此,抛出的异常将被视为一个失败状态(rejection)从而执行失败回调,完成之后,整个进程 将继续进行,后续的成功回调将被执行。
var deferred = $.Deferred();
deferrea.then(function(){
throw new error('an error');
}).then(
function(){
console.log('success 1');
},function(){
console.log('failure 1');
}).then{
function(){
console.log('success 2');
},function(){
console.log('failure 2');
}
);
deferred.resolve();
在jquery 1.x 2.x中,只有第一个函数会被执行到,由于没有window.onerror定义任何事件处理函数,所以控制台会输出“Uncaught Error:an error”,而且进程的执行将终止
而jquery3中,行为完全不同,在控制台中会看到failure1 和success2两条消息。异常会被第一个失败回调处理,一旦被处理,则继续执行下面的成功函数。
三,已废弃,移除的方法和属性
1,废弃了bind(),unbind(),delegate(),undelegate()
用on()方法提供了统一的访问接口,取代了bind(),delegate(),live()
off()取代了unbind(),undelegate(),die()
2,移除了load(),unload(),error()
3,移除context,support,selector这些属性
4,bugs修复: width()和height()的返回值不再四舍五入
5,wrapAll()
jQuery3的新特性的更多相关文章
- SQL Server 2014 新特性——内存数据库
SQL Server 2014 新特性——内存数据库 目录 SQL Server 2014 新特性——内存数据库 简介: 设计目的和原因: 专业名词 In-Memory OLTP不同之处 内存优化表 ...
- ElasticSearch 5学习(10)——结构化查询(包括新特性)
之前我们所有的查询都属于命令行查询,但是不利于复杂的查询,而且一般在项目开发中不使用命令行查询方式,只有在调试测试时使用简单命令行查询,但是,如果想要善用搜索,我们必须使用请求体查询(request ...
- [干货来袭]C#6.0新特性
微软昨天发布了新的VS 2015 ..随之而来的还有很多很多东西... .NET新版本 ASP.NET新版本...等等..太多..实在没消化.. 分享一下也是昨天发布的新的C#6.0的部分新特性吧.. ...
- CSS3新特性应用之结构与布局
一.自适应内部元素 利用width的新特性min-content实现 width新特性值介绍: fill-available,自动填充盒子模型中剩余的宽度,包含margin.padding.borde ...
- 【译】Meteor 新手教程:在排行榜上添加新特性
原文:http://danneu.com/posts/6-meteor-tutorial-for-fellow-noobs-adding-features-to-the-leaderboard-dem ...
- 跨平台的 .NET 运行环境 Mono 3.2 新特性
Mono 3.2 发布了,对 Mono 3.0 和 2.10 版本的支持不再继续,而且这两个分支也不再提供 bug 修复更新. Mono 3.2 主要新特性: LLVM 更新到 3.2 版本,带来更多 ...
- Atitit opencv版本新特性attilax总结
Atitit opencv版本新特性attilax总结 1.1. :OpenCV 3.0 发布,史上功能最全,速度最快的版1 1.2. 应用领域2 1.3. OPENCV2.4.3改进 2.4.2就有 ...
- es6 新特性2
es6其他几个非常有用的新特性. import export 这两个家伙对应的就是es6自己的module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成 ...
- ES6 新特性
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...
随机推荐
- GPS部标监控平台的功能设计(一)-功能列表
在2011年交通部的796标准推出后,随着各地交管部门的硬性要求,大多数的GPS监控系统或者车辆管理系统或者物流管理系统,无论是旧的,还是新开发的,都必须要以796标准为基础蓝本,首先要满足796的要 ...
- 化繁为简,最简易的SqlDataSource配合Cache使用~
最近一个小项目用了比较方便傻瓜的DevExpress控件,实践中DevExpress的控件确实很方便. 在用ASPxGridView控件的时候,为了偷懒结合了SqlDataSource使用,但一直在大 ...
- poj 3254 Corn Fields
http://poj.org/problem?id=3254 Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissio ...
- eclipse安装svn
- html 关键字设定
<meta name="description" content="仡家油茶仡家油茶仡家油茶仡家油茶"> <meta name="k ...
- 夺命雷公狗----Git---5---分支
git分支的概念相当于是添加一个属于自己的分支,别人是看不到的,等你写完自己的程序到时候在合并到团队的分支上即可.... 我们可以查看自己git里面有什么分支,如下所示: git branch 在这里 ...
- XEN的启动信息输出到“Platform timer is 14.318MHz HPET”就暂停接收的解决办法
使用Serial Over Lan(SOL)来双机调试 XEN,在 XEN 启动时,引导信息输出到以下这一句时,就不再发送调试信息了: ...(XEN) Intel machine check rep ...
- C语言回顾-整型变量修饰符和一维数组
1.整型变量修饰符 1)改变整型变量的存储空间 #include <stdio.h> int main(int argc, const char * argv[]) { //改变整型变量占 ...
- 求android ble 解决方案!
智能医疗的产品,求ble解决方案:整体结构如下: 名词定义: 盒子:基于android4.3或以上版本的硬件,需支持wifi.ble 手机:android/ios 手机,用户使用 服务器:云服务器,盒 ...
- PHPExcel导出功能
对于第一次弄这个导出,总结下思路: 1.下载在http://phpexcel.codeplex.com/下载最新PHPExcel放到Vendor下,注意位置:ThinkPHP\Extend\Vendo ...