思想

拨开迷雾见青天

导航

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

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")。

 

posted on 2011-09-23 11:04  Will Lu  阅读(188)  评论(0编辑  收藏  举报