• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アコーディオンパネルで複数のリンクを展開する方法)

アコーディオンパネルで複数のリンクを展開する方法

このQ&Aのポイント
  • Jquery初心者がアコーディオンパネルを実装する際に問題が発生
  • HTMLとJQueryのコードを記載したが、展開できない状況
  • eachの使い方や記述に問題があるか判断できず困っている

質問者が選んだベストアンサー

  • ベストアンサー
  • LOHA
  • ベストアンサー率52% (203/388)
回答No.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/

majunian
質問者

お礼

返事が遅くなり申し訳ございません。 以下のコードで実現できました。 $(function () { $("ul.slide li ul").css("display", "none"); $("ul.slide li").click(function () { $("ul", this).slideToggle(); }); }); slideToggleの有用性が理解出来ました。ありがとうございました。

関連するQ&A