###前提・実現したいこと
現在アコーディオンメニューを作っており
・liをクリックでdiv内を表示
・他のliをクリックで元のdiv内を非表示にし、該当のdivを表示
・同じliを2回クリックしたらcontent部分を非表示
という動作をしたいのですが、最後の非表示にする事ができません。
###該当のソースコード
<nav> <ul class="global_nav"> <li class="gn01">1</li> <li class="gn02">2</li> <li class="gn03">3</li> </ul> </nav> <div class="content"> <div class="area gn01"> <div class="gn_box">1の内容</div> </div> <div class="area gn02"> <div class="gn_box">2の内容</div> </div> <div class="area gn03"> <div class="gn_box">3の内容</div> </div> </div> <script> $(function(){ $('.global_nav > li').click(function(){ $('.global_nav > li,.area').removeClass('active'); var tabClass = $(this).attr('class'); $(this).addClass('active'); $('.area').each(function(){ if($(this).attr('class').indexOf(tabClass) != -1){ $(this).addClass('active').fadeIn(); }else{ $(this).hide(); } }); }); }); </script>
###試したこと
jquery自体をあまりまだ把握していないので、どの部分にどのように追記すればいいかが
わかりません。
宜しくお願い致します。
質問文のコードはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
回答2件
あなたの回答
tips
プレビュー