• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:jQuery tabs 開閉式タブについて)

jQuery tabs 開閉式タブについて

このQ&Aのポイント
  • jQueryを使用して開閉式のタブメニューを作成したい場合、slideToggleを使うと複数のメニューが同時に開いてしまう問題が起こることがあります。
  • 解決策として、切り替えるメニュー以外のメニューを非表示にする方法があります。
  • 具体的な実装方法として、ul.panel li:not(ul.tab li a.selectedのhref)を用いて非表示にした後、クリックしたメニューを表示するようにします。

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

少し違うかも… こんなのでは? (って、判じ物じゃあるまいし…) jQuery(function($){   var openP;   $("ul.panel>li").hide();   $("ul.tab>li>a").click(function(){     var p = $(this).attr("href");     $(openP).slideUp();     if(openP === p) openP = null; else $(openP = p).slideDown();     return false;   }); }); (全角空白は半角に)

zamurai8
質問者

お礼

ご教授誠にありがとうございます。 ザックリうまくいきました!!! if文大変勉強になりました。 さらなる精進いたします。 本当に感謝感謝です。 重ねて御礼申し上げます。

その他の回答 (1)

  • ok-rjak
  • ベストアンサー率52% (70/134)
回答No.1

マスターではないですが・・・ こういうことではないんですかね? <ul class="tab"> <li><a href="#tabs-1">メニュー1</a></li> <li><a href="#tabs-2">メニュー2</a></li> <li><a href="#tabs-3">メニュー3</a></li> </ul> <ul class="panel"> <li id="tabs-1">aaa</li> <li id="tabs-2">bbb</li> <li id="tabs-3">ccc</li> </ul> <script src="http://code.jquery.com/jquery-1.10.2.min.js"></script> <script> ;(function($){ $('.panel li').hide(); $('.tab li a').click(function(){ $('.panel li').slideUp(); $($(this).attr('href')).slideDown(); return false; }); })(jQuery); </script>

zamurai8
質問者

お礼

早速のご教授誠にありがとうございます。 私のやり方がまずいのかやはり閉じる方がうまくいかず。。 コード自体は自ら複雑にしてしまっていることは気づきました。 キレイなコード勉強になりました。

関連するQ&A

専門家に質問してみよう