1. 新增的特性
-
支持for…of循环
-
var i = 0 for (var input of $('.input')) { input.id = i++ }
-
-
post新增参数类型
$.post({ url: url, data: { name: 'aaa' }, ... })
-
采用requestAnimationFrame() 实现动画(IE10+
浏览器不支持降级为setInterval,serInterval有机率导致动画卡顿
根据浏览器的绘制时间对动画不断优化,减少CPU消耗
-
unwrap() 增加可选参数selector
$('.div').unwrap() //选中则删除该父元素
-
addClass(), removeClass(), toggleClass() 可接受类数组
$('.div').addClass(['red', 'bg-blue'])
-
新增$.escapeSelector(),转义特殊意义的符号
<div class="red.bg-blue" ></div> $('.'+$.escapeSelector('red.bg-blue'))
2. 变更的特性
-
:visible和:hidden变更含义,height为0也被认为是:visible
-
data属性名转换为驼峰形式
$('.div').data({ 'my-div': 'demo' }) console.log($('.div').data()) // {myDiv: 'demo'}
-
deferred对象
3.x以前,回调异常程序终止
3.x+,回调异常,失败回调函数执行,继续进行下一个回调。和promiss靠拢
- 类操作方法支持svg
addClass('my-svg')
3. 废弃的方法和属性
1. 废弃bind(),unbind(),delegate(),undelegate(),一致使用$.on和$.off
2. 移除load(),unload(),error()
3. 移除context,suport,selector属性
4. 修复的bug
-
width()和height() 不再四舍五入取整,而是取小数点三位数
-
wrapAll()传递参数为函数时包裹了每个对象的bug,应该是包裹一个该类对象。
<div class="parent"> <a href="">baidu</a> <div class="aaa"> <a href="">baidu</a> <a href="">baidu</a> <a href="">baidu</a> </div> </div> <!-- <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script> --> <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script> <script> // $('a').wrap(function() { // return `<div class="${$(this).text()}"></div>` // }) $('a').wrapAll(function() { return `<div class="${$(this).text()}"></div>` }) </script>
版本使用推荐
IE兼容使用1.x版本
插件兼容使用1.x版本
手机端使用zepto.js
2,1.x 常用版本
- 1.4.2:稳定性和兼容性都很出色,插件最多,但性能不如下面后面的几个版本。
- 1.7.2:性能提升,插件第二多,ajax 和 attr 等 api 有少许修改。
- 1.8.3:最后一个支持 IE6 的稳定版
- 1.9.1:开始移除了不少方法,事件绑定推荐使用 on 方法一个代替所有的。
- 1.12.4:1.x 时代最后一个稳定版本,仅支持 IE8,不支持 IE6/7。
3,2.x、3.x 版本
除非有特殊要求(比如面向移动端),一般情况下这两大版本使用人的确很少:
- 2.x 最后一个稳定版本:2.2.4
- 3.x 最新版本:3.3.1