大切な時間

IT系の話題や、趣味であるロードバイク、カメラ、iPhoneなどの話題を書いてます

*

[jquery] 1.90ではtoggleの挙動がかわった!思わぬ落とし穴。

      2013/08/30

アコーディオンを実装する時に良く使っていた「toggle(function,function,….)」が、
jQuery 1.9で廃止されたというのを今更になって知りました。

新しいもの好きなので、常に最新のものを取り入れよう!と思って1.9を入れましたが
すぐに1.83に戻しました^^;

今回ハマった落とし穴は続きで。

Javascript

HTML

こんなソースがあります。よく見かけますね。
「クリック」を押せば下のメニューが閉じたり開いたりします。
これが1.9以前の動作。

ところが、1.9からはこれが廃止になりました。
その代わりに、表示・非表示を切り替える toggle() は存在しています。

Javascript

こっちで使ってる toggle() ですね。
そのためか、1.9で最初のソースを使うと「クリック」の文字ごと非表示になってしまいました。
クリックする部分が消えてしまうのです。

単純に表示・非表示の切り替えとか、classの追加・削除の切り替えなら2番めのソースで対応できるけど、
表示させるときはこの動作をして非表示にするときはこの動作をする、と言う時にtoggleは便利だったんだけどね。

私の知識不足なだけかも知れませんがちょっと面倒です。

 - jQuery