除了修正一些 bug 之外,還有改進效能喔!
我個人喜愛的 JavaScript framework — jQuery 日前釋出了 1.2.2 版本,這個版本做了一些更新及 bug 的修復,這裡簡略做個說明:
-
$(DOMElement)
的速度加快在我的 jQuery 學習心得筆記系列中有提過,jQuery 可以用 CSS selector 的方式來取得特定的 DOM Element,也可以直用
$()
套上 DOM element 讓它變成一個 jQuery 物件,以便使用 jQuery 所提供的函式。
在 1.2.2 版中,$(DOMElement)
的寫法提升了不少速度,在一些瀏覽器上實驗甚至可以達到3倍的速度。(變成紅色?*誤*) -
$.ready()
翻修改良了
$.ready()
的寫法,而且在 1.2.2 版後,這個 function 被呼叫的時間會等到 CSS 文件也載入後才會觸發。同時,你也可以 bind “ready” 這個 event 了。 -
加入
mouseenter
及mouseleave
的 event過去某個元件要偵側滑鼠會用
$.hover()
來作 binding,而 hover 同時包含了 mouse 的進入及離開,現在可以直接 bind mouseenter/mouseexit 這兩個 event 來偵測了。
這個跟 mouseover/mouseout 有點不一樣的地方在於,如果 parent element 收到 mouseover event 時,children elements 並不會收到 mouseover 的 event。 -
增加
mousewheel
event -
selector 中加入
not()
雖然這不是 CSS 3 的標準,不過因應很多人需求而加入的功能,也就是你可以寫出這樣的語法:
$('.hover:not(li.active)')
-
改進 Ajax function 中的 ACCEPT header
現在會根據不同的 dataType 參數而送出不同的 ACCEPT header:
* xml “application/xml, text/xml”
* html “text/html”
* script “text/javascript, application/javascript”
* json “application/json, text/javascript”
* text “text/plain”
* Everything else: “*/*” -
Bug fixes
-
新的 Event API
$.event.special
可以讓你自行定義某個 event 的觸發時機、handler 。過去使用自訂 event 的時候,還必須自己手動作 trigger 的動作,透過新的 event api,你可以設定 event 觸發的時機,以及 event 物件中究竟帶入什麼值。
新增的 mousewheel event 就是用這個方式做出來的,這裡是它的原始碼,同時也可以看出來要怎麼自行運用新的 event api。