- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アコーディオンパネルで複数のリンクを展開する方法)
アコーディオンパネルで複数のリンクを展開する方法
このQ&Aのポイント
- Jquery初心者がアコーディオンパネルを実装する際に問題が発生
- HTMLとJQueryのコードを記載したが、展開できない状況
- eachの使い方や記述に問題があるか判断できず困っている
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
私ならこうします。 #動作確認はしていませんので、動かなかったらスミマセン。 $(function() { $("ul.slide ul").hide(); $("ul.slide > li > a").click(function() { $(this).next().slideToggle(); }); }); ポイントは ・セレクタの'>'は子要素の意味(http://www.tg.rim.or.jp/~hexane/ach/lbcs/lbcs2-02.htm#s2-2-2) ・途中のthisはクリックされたaエレメントを示している ・スライドの表示非表示はslideToggleが便利(http://semooh.jp/jquery/api/effects/slideToggle/%5Bspeed%5D,+%5Bcallback%5D/) >if ($("ul.slide li").css("display")=="none") の$("ul.slide li")は、slideクラス配下の全li要素を表しているので問題があります。うまくthisを使うのが得策です。 ちなみに、jQueryUIにAccordionがあるので、それを使う手もありかもしれません。 http://jqueryui.com/demos/accordion/
お礼
返事が遅くなり申し訳ございません。 以下のコードで実現できました。 $(function () { $("ul.slide li ul").css("display", "none"); $("ul.slide li").click(function () { $("ul", this).slideToggle(); }); }); slideToggleの有用性が理解出来ました。ありがとうございました。