jQuery 1.9 で変更された仕様によって動かなくなるプラグインが多い
将来的に削除されることは知っていたけど、使い勝手が良くて使っていた
$.browser()
と、何気に動的に生成されたDOMオブジェクトに対して適応性が低い$.bind()
より汎用的に使えるため重宝していた$.live()
などが削除されてしまったため、これらのメソッドを使っているjQueryプラグインではエラーが発生してしまうようになってしまいました。・・・と言うことで、jQuery 1.9系での主な仕様変更をまとめてみた。
- 1.3からサポート外に指定されてましたが、ついにメソッドが削除されてしまった・・・何気にお手軽にブラウザ判定できるので使い勝手良かったんだが・・・致し方ないですね。これからは、
$.support()
を使って判定式を組まないといかんです。
$.bind()
の拡張版メソッドで、bindはjQueryやJavaScriptで動的に生成されたオブジェクトに対して処理をバインドできなかったのを可能にするメソッド。これも使い勝手が良くて重宝していたのだが・・・廃止されてしまった。今後は$.on()
と$.off()
を使えってことです。まぁ、バインドイベントのオン・オフを判り易く制御できるのでこちらの方が確かにスマートだ。上記live関数を削除するメソッドです。liveがなければこちらも不要ということですね。
プロパティとメソッドが自由に変更可能なコアjQueryオブジェクトのコピーを作成するメソッドです。プラグイン開発などで、コアを変更せずに、独自にjQueryコアを拡張する時などに使われていましたが、結構巨大なjQueryコア自体をコピーしてメモリ食いまくってまで作るプラグインもないだろう・・・という判断があったのかも。まぁ、プラグイン開発者以外にはあまり使わないメソッドだし、1.8系からこのメソッド自体がプラグイン化されたらしいので、廃止によるインパクトは低いかな。
1.7系で非推奨化されてたメソッドです。指定のオブジェクトがクリックされる毎にfn1、fn2、・・・fnNと関数を実行して、fnN以降はfn1に戻るみたいな処理が書けるメソッドでした。まぁ、クリック毎にそこまで処理変えなきゃいかんUIってどうよ?って感じなので、廃止は妥当かな・・・と。あ、ちなみに、関数バインド型ではないイベントエフェクト型の
$.toggle()
は廃止されていません。
$.add()
、$.before()
、$.after()
、$.addSelf()
などなど細かいところが色々と変わっているようです。※ 詳しくは、本家のjQuery Core 1.9 Upgrade Guideをご参照ください。