※ ChatGPTを利用し、要約された質問です(原文:jQuery tabs 開閉式タブについて)
jQuery tabs 開閉式タブについて
このQ&Aのポイント
jQueryを使用して開閉式のタブメニューを作成したい場合、slideToggleを使うと複数のメニューが同時に開いてしまう問題が起こることがあります。
解決策として、切り替えるメニュー以外のメニューを非表示にする方法があります。
具体的な実装方法として、ul.panel li:not(ul.tab li a.selectedのhref)を用いて非表示にした後、クリックしたメニューを表示するようにします。
jQuery tabsについて質問させてください。
知識不足です。。
やりたいこととしましては、複数タブメニューの開閉です。
メニュー1 クリックで⇒開く ⇒再度クリックで閉じる
メニュー1開放時⇒メニュー2 クリック⇒メニュー2の内容に切り替わる⇒メニュー2再度クリックで閉じるといった内容です。
開閉だけなら collapsible: true で解決ですが、slideToggle のような効果も付けたい。
単一のメニューの場合は slideToggle で一発ですが、複数になったらうまくいかない????
メニューの内容が同時に開いたりしてしまい。。などなど試行錯誤で行き詰まりました。
色々参考にして最終的には以下のようなところにきましたが、メニューを閉じる事ができず
どなたかjQueryマスターの方ご教授いただけますと幸いです。
説明下手ですいません。
何卒よろしくお願いいたします。
※以下のスクリプトにこだわりはございません。
こんなの一発でこうだろという指摘ございましたら遠慮くなく指摘してくださいませ。
javascript ================
<script type="text/javascript">
$(function(){
$("ul.panel li:not("+$("ul.tab li a.selected").attr("href")+")").hide()
$("ul.tab li a").click(function(){
$("ul.tab li a").removeClass("selected")
$(this).addClass("selected")
$("ul.panel li").slideUp("fast")
$($(this).attr("href")).slideDown("fast")
return false
});
})
</script>
///////HTML//////
<body>
<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"></li>
<li id="tabs-2"></li>
<li id="tabs-3"></li>
</ul>
</body>
お礼
ご教授誠にありがとうございます。 ザックリうまくいきました!!! if文大変勉強になりました。 さらなる精進いたします。 本当に感謝感謝です。 重ねて御礼申し上げます。