jQuery 1.2.2 釋出

除了修正一些 bug 之外,還有改進效能喔!

我個人喜愛的 JavaScript framework -- jQuery 日前釋出了 1.2.2 版本,這個版本做了一些更新及 bug 的修復,這裡簡略做個說明:

  1. $(DOMElement) 的速度加快

    在我的 jQuery 學習心得筆記系列中有提過,jQuery 可以用 CSS selector 的方式來取得特定的 DOM Element,也可以直用 $() 套上 DOM element 讓它變成一個 jQuery 物件,以便使用 jQuery 所提供的函式。

    在 1.2.2 版中,$(DOMElement) 的寫法提升了不少速度,在一些瀏覽器上實驗甚至可以達到3倍的速度。(變成紅色?*誤*)

  2. $.ready() 翻修

    改良了 $.ready() 的寫法,而且在 1.2.2 版後,這個 function 被呼叫的時間會等到 CSS 文件也載入後才會觸發。同時,你也可以 bind "ready" 這個 event 了。

  3. 加入 mouseentermouseleave 的 event

    過去某個元件要偵側滑鼠會用 $.hover() 來作 binding,而 hover 同時包含了 mouse 的進入及離開,現在可以直接 bind mouseenter/mouseexit 這兩個 event 來偵測了。

    這個跟 mouseover/mouseout 有點不一樣的地方在於,如果 parent element 收到 mouseover event 時,children elements 並不會收到 mouseover 的 event。

  4. 增加 mousewheel event
  5. selector 中加入 not()

    雖然這不是 CSS 3 的標準,不過因應很多人需求而加入的功能,也就是你可以寫出這樣的語法:

    $('.hover:not(li.active)')

  6. 改進 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: "*/*"

  7. Bug fixes
  8. 新的 Event API

    $.event.special 可以讓你自行定義某個 event 的觸發時機、handler 。過去使用自訂 event 的時候,還必須自己手動作 trigger 的動作,透過新的 event api,你可以設定 event 觸發的時機,以及 event 物件中究竟帶入什麼值。

    新增的 mousewheel event 就是用這個方式做出來的,這裡是它的原始碼,同時也可以看出來要怎麼自行運用新的 event api。