jQuery 1.9 で変わったところを調べてみる。

jQuery 1.9 で変わったところを調べてみる。

引越しの準備がままならないminamiです。
jQuery1.9 が正式にリリースされました。すでにベータ版として発表されているjQuery 2.0 はIE6/7/8に対応しないことを謳っているため、これらのブラウザ対応をする場合は1.9 を使っていくことになりますね。
jQuery1.9 で変更があった機能を見ていきたいと思います。

どう変わったの?

jQuery 1.9でアップグレードされた機能は下記ページにまとまっています。

主要なところを抜粋してみます。

  • toggle(function,function,...) の廃止

間違えそうですが、表示/非表示のtoggle()は使えます。

  • jQuery.browser() の廃止

だいぶ前からなくなるよ、と言われていましたが、とうとう廃止に。jQuery.supportや、Modernizrなどを使うことが推奨されています。

  • .live() の廃止
  • .die() の廃止

1.7から実装されたon(),off()を使いましょう。バシャログ。でも解説しています。

  • jQuery.sub() の廃止

正直使ったことありません・・・

  • .add()

生成する要素に既に存在する要素を追加する場合、「存在する要素 → 新しく生成する要素」の順になるようになりました。

  • .addBack() の名前がaddSelf() に
  • .before() / .after()の挙動が変化

.before() / .after() した場合、対象の要素には追加された要素が含まれなくなりました。

  • ajaxStart, ajaxStop, ajaxSend, ajaxComplete, ajaxError, ajaxSuccessのイベントはdocumentにバインドしないといけないように変更。
  • チェックボックス、ラジオボタンにclick(),trigger('click')を実行した際、「チェックを入れる / 外す」「クリックする」が厳密に区別されるように変更。

「クリック=チェックを入れる」ではなくなった。より厳密に処理を考える必要がありそうです。

  • .data("abc.def") のようなdata属性でもきちんと動くようになった

.も含めた文字列としての値を見に行くので、上記では「abc.def」というdata属性を読みます。

  • $(“input”).attr(“type”, newValue) とした際の古いIEでの処理

上記の様な指定をすると IE 6/7/8ではエラーとなっていましたが、1.9では無視するようなりました。(内部的にはエラーが起きている・・・らしい。)

  • hover() が非推奨に

to-R様にご指摘をいただいてしまいました。正しくは、hover()が非推奨になったのではなく、擬似イベントとして定義されている"hover"が"mouseenter mouseleave"として解釈されなくなったとのことです。訂正いたします。

  • .selector が非推奨に

...他にも細かい所で色々変わっています。

jQuery Migrate Plugin

上記で廃止になったapiなどに依存した古いプログラムがjQuery 1.9に対応できるよう、互換性のためのプラグインjQuery Migrateが提供されています。jQueryのバージョンを上げたいけど・・・とお考えの方はこちらの導入も検討してみてください。

まとめ

jQuery 2.0 からはついにIE8までを非対応とし、より高速でシンプルなプラグインになると言われています。現状を考えると、もう少しjQuery1.9系 にはお世話になりそうです。

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ