代码改变世界

jQuery 1.6.1中什么构成属性(Attribute)或属性(Property)

2011-11-23 15:08  俊俊+  阅读(257)  评论(0)    收藏  举报

jQuery 1.6.1 RC1今天已经发布,帮助解决.Attr()向后兼容的问题连同其他一些修正。 jQuery.com发布一个不错的图表,.attr()和.prop()应该被用于今后的jQuery 1.6+。 我想我公布这个供以后参考。请注意,所有的属性仍然可以通过1.6.1访问,但不一定能通过1.6。 据jQuery.com说.prop()方法应该被用于布尔属性(Attribute)/属性(Property)和在HTML中不存在的属性(如window.location的)。全部的其他属性(那些你可以在HTML中看到的)可以而且应该继续使用.attr()方法控制。

ATTRIBUTE PROPERTY
accesskey async
align autofocus
class checked
contenteditable location
draggable multiple
href readOnly
id selected
label  
rel  
src  
tabindex  
title  
type  
width

 

 

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

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

  • attr()val()data()方法有了更好的性能;
  • 在attr()方法中支持Boolean属性;
  • 添加了钩子函数,允许对attr()和val()方法进行扩展;
  • map()方法添加了对对象的支持(将JavaScript对象的属性映射到函数)
  • 允许使用相对值(“+=”,“-=”)更新CSS;
  • 添加了deferred.always(), deferred.pipe()方法,减少了代码量,提高了代码易读性;
  • 同步动画 – 现在所有动画都同步到相同的时间间隔. 使用新的浏览器功能,动画也更顺畅;
  • find()closest()is()可接收所有的DOM元素和jQuery对象作为参数。

所有这些新特性连同整个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")。