jQuery 1.6版本正式发布,重点提升了attr()、val()等核心方法的性能,并新增deferred对象及CSS相对值更新支持。然而,该版本引入了关键的破坏性变更,特别是data()方法的驼峰命名规则调整以及Property与Attribute的严格区分,要求开发者使用prop()方法处理DOM属性,升级前需仔细评估影响。
jQuery 1.6 主要功能改进
新版本带来了多项重要改进:
-
attr()方法、val()方法
attr()、val()
data()方法data()
-
在attr()方法中增加了对Boolean属性的支持;
-
引入了钩子函数机制,允许对attr()和val()方法进行扩展;
-
map()方法
map()方法新增了对对象的支持,可将JavaScript对象的属性映射到函数;
-
支持使用相对值(如“+=”、“-=”)来更新CSS样式;
-
增加了deferred.always()和deferred.pipe()方法,有助于减少代码量并提高可读性;
-
实现了动画同步功能,所有动画现在统一同步到相同的时间间隔,利用新的浏览器特性使动画更加流畅;
-
find()方法,closest()方法
find()、closest()
is()方法is()
上述所有新特性以及完整的bug修复列表均在官方博文中进行了详细说明。
破坏性变更与注意事项
遗憾的是,此次更新包含部分破坏性变更,团队已在官方公告中通过独立章节重点强调了这些内容:
data() 与属性处理变更
| 变更 | JQuery 1.5.2 示例 | JQuery 1.6 示例 |
| data()方法使用破折号创建驼峰格式。 |
data-max-value="15" 创建{ max-value: 15 } | data-max-value="15" 创建{ maxValue: 15 } |
| 区分了Property与Attribute。attr()方法现在不能用于获取preperty的值。为了处理property的值,引入了prop()和removeProp()方法。 | 如果复选框被选中,checkbox.attr("checked")返回(true) |
checkbox.attr("checked")返回空字符串。 要判别是否选中,需在事件处理程序中使用 $(this).prop("checked")或 $(this).is(":checked")。 |
版本发布背景与后续计划
不出意外的话,第二项变更将会影响到现有打算升级到1.6的那些项目。
这一版本是在1.5发布后3个月及1.5.2发布后1个月推出的。目前1.7的工作已经开始了,JQuery团队已经接受了功能建议书。
jQuery 概述
JQuery是一个用于快速Web开发的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互。