jQuery 1.6 发布:性能提升,同时包含破坏性的变更

  • Roopesh Shenoy
  • 胡伟红

2011 年 5 月 7 日

话题:Java.NETRubyJavaScriptDevOps语言 & 开发架构文化 & 方法

jQuery 1.6 刚刚发布了,有几处性能和跨浏览器兼容性的改进,专门重写了属性模块。

新版本中的部分重要改进:

  • 在 attr() 方法中支持 Boolean 属性;

  • 添加了钩子函数,允许对 attr() 和 val() 方法进行扩展;

  • map()

    方法添加了对对象的支持(将 JavaScript 对象的属性映射到函数)

  • 允许使用相对值(“+=”,“-=”)更新 CSS;

  • 添加了 deferred.always(), deferred.pipe() 方法,减少了代码量,提高了代码易读性;

  • 同步动画 – 现在所有动画都同步到相同的时间间隔. 使用新的浏览器功能,动画也更顺畅;

所有这些新特性连同整个 bug 修复列表在官方博文中都有详细说明。

不幸的是,其中包含了部分破坏性的变更,团队已经在官方更新中用单独的章节强调了它们:

变更 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是一个用于快速 Web 开发的 JavaScript 库,它简化了 HTML 文档遍历、事件处理、动画以及 Ajax 交互。

查看英文原文:JQuery 1.6 Released With Performance Upgrades, Breaking Changes

Java.NETRubyJavaScriptDevOps语言 & 开发架构文化 & 方法