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")返回Null 字元串。
要判別是否選中,需在事件處理常式中使用
$(this).prop("checked")或
$(this).is(":checked")。 |