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>
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;
});
});
(全角空白は半角に)
ご教授誠にありがとうございます。
ザックリうまくいきました!!!
if文大変勉強になりました。
さらなる精進いたします。
本当に感謝感謝です。
重ねて御礼申し上げます。
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"></s …
<script>
;(function($){
$('.panel li').hide();
$('.tab li a').click(function(){
$('.panel li').slideUp();
$($(this).attr('href')).slideDown();
return false;
});
})(jQuery);
</script>
早速のご教授誠にありがとうございます。
私のやり方がまずいのかやはり閉じる方がうまくいかず。。
コード自体は自ら複雑にしてしまっていることは気づきました。
キレイなコード勉強になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- HTML・CSS htmlについて質問です! 写真のように写真の部分が?になってしまいます。 ファイルもしっかり選べて 1 2023/07/09 21:17
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onmouseoverの表示切り替えが上...
-
javascriptで教えてください。 ...
-
「jQuery」アコーディオンメニ...
-
jQueryで、リンクURLの一致を確...
-
【短い】1つだけ展開/表示/非表...
-
jQueryのeqで最後からn番目以降...
-
jqueryのsortableで一部ソート...
-
【jQuery】遅延実行(タイムラ...
-
JavaScriptで、?マークとコロ...
-
質問に答えていくと、回答によ...
-
JqueryFileTree.js でフォルダ...
-
Jqueryでリストのスクロール
-
Jquery の slide.toggle で要素...
-
jQueryのhide,showで中の要素が...
-
JS <a></a>タグ内のリンク先ア...
-
jquery ドロップダウンメニュー...
-
javascript INNERHTMLについて
-
javascriptで、クリックしたら...
-
MAX関数を使ってからLEFT JOIN...
-
MFCで画像を表示させているので...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jqueryのsortableで一部ソート...
-
クリックした<a>タグのみにClas...
-
JQueryタブのアクティブ アン...
-
javascriptでEnterキーをtabキ...
-
「jQuery」アコーディオンメニ...
-
【jQuery】遅延実行(タイムラ...
-
ネストされたチェックボックス...
-
【javascript で動的に a タグ...
-
jquery ドロップダウンメニュー...
-
文字と数字が混在する要素のsor...
-
Jquery の slide.toggle で要素...
-
【jQuery】hoverしたn秒後にイ...
-
チェックボックスに入っている...
-
クリックで表示、非表示するメ...
-
同一ページ内で、任意の文字列...
-
オンマウスで画像ロールオーバ...
-
javascriptで、クリックしたら...
-
PHPでログインフォーム
-
<li>タグの順番を入れ替える方法
-
jQuery タブメニューへのダイ...
おすすめ情報