jQuery 1.7リリース

米国時間の2011年11月3日に、jQuery 1.7がリリースされました。

JQUERY 1.7 RELEASED(jQuery公式ブログ)

jQuery 1.7の主な改良点は以下の通りです。

.on()/.off()

イベントハンドラの登録と解除を行う新しいAPIとして、.on()と.off()が追加されました。

$(elements).on(events [, selector] [, data] , handler);
$(elements).off([ events ] [, selector] [, handler]);

例えば、p要素がクリックされた時のハンドラを定義するには、以下のように書きます。

jQuery('p').on('click', handler);

selectorを指定すると、.delegate()と同じような動作になります。
例えば、IDがcontainerの要素の中にあるli要素に対して、クリックされた時のハンドラを定義するには、以下のように書きます。

jQuery('#container').on('click', 'li', handler);

jQueryの公式ブログによると、jQuery 1.7以降を組み込むプロジェクトでは、イベントハンドラの登録/解除を.on()/.off()のAPIで行うことが推奨されています。

Delegateの高速化

Delegateの処理が高速化され、jQuery 1.6.4と比べて、処理時間が約半分になったそうです。

IE8以前でのHTML5対応

.html()などのAPIで、HTML5のsectionなどの新要素を追加したりした場合、これまでのjQueryではInternet Explorer 8以前では正しく動作しませんでした。
この点が改良され、jQuery 1.7ではIE8以前でも正しく動作するようになりました。
ただし、HTML5Shivも合わせてを組み込む必要があります。

その他

上記の他に、以下のような改良が行われているということです。

  • .slideToggle()/.fadeToggle()の動作の正常化
  • Asynchronous Module Definition(AMD)APIのサポート
  • jQuery.Deferredの改良
  • 数値かどうかを判断するjQuery.isNumeric()関数の追加