Jquery の slide.toggle でメニューを作っていますが、
ボタンでは正常にメニューの開閉がされるのですが、
ボタン以外のクリック(またはタップ)で
開いたメニューを閉じたいのですがうまくいきません。
コードは以下のように記述しています。
$('#menu').each(function(){
$(this).css("height",$(this).height()+"px");
});
$('#btn').click(function () {
$('#menu').slideToggle('slow');
$(this).toggleClass('active');
});
お詳しい方、ご教授お願いいたします。
No.3ベストアンサー
- 回答日時:
普通にボタンでメニューだしたり消したりならこれでいいのでは?
<script src="ttp://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(function(){
$('#btn').on('click',function () {
$('#menu').slideToggle('slow');
});
});
</script>
<button type="button" id="btn">menu toggle</button>
<nav id="menu">
<ul>
<li>Menu 1</li>
<li>Menu 2</li>
<li>Menu 3</li>
</ul>
</nav>
No.4
- 回答日時:
ああ、ごめんなさい、ボタン以外のクリックで閉じるんでしたね
$(function(){
$(document).on('click',function () {
$('#menu').slideUp('slow');
});
$('#btn').on('click',function (e) {
$('#menu').slideToggle('slow');
e.stopPropagation();
});
});
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- JavaScript jQueryでのレスポンシブが綺麗に動かない 3 2022/06/21 11:08
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- JavaScript javascriptで文字挿入でtoggleみたいなのはありますか? 2 2023/02/14 21:53
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アコーディオンメニューの開閉制御
-
javascriptで、クリックしたら...
-
複数の画像をランダム(シャッ...
-
JQuery UIで、表示したタブの中...
-
クリックした<a>タグのみにClas...
-
アコーディオン自動開閉メニュ...
-
jQueryセレクタ/複数要素の指...
-
同一ページ内で、任意の文字列...
-
JQueryタブのアクティブ アン...
-
【jQuery】hoverしたn秒後にイ...
-
MAX関数を使ってからLEFT JOIN...
-
スタイルシートで画面を上下に...
-
JavaScript スライドの画像にリ...
-
textareaに画像を表示したい
-
javascriptでスタイルを動的に...
-
キャラクターがぴょこんと飛び...
-
OpenCV での画素値の比較について
-
HTMLで条件分岐はできますか?
-
Ctrl+F(検索)の窓を出したいの...
-
色の変更
マンスリーランキングこのカテゴリの人気マンスリー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 タブメニューへのダイ...
おすすめ情報
ご回答ありがとうございます。
詳しいことはわからずに、
他のサイトにあったコードをそのまま使いました。
<body>~</body>の間は以下のとおりです。
<header>
<button type="button" id="btn"></button>
<nav id="menu">
<ul>
<li>Menu 1</li>
<li>Menu 2</li>
<li>Menu 3</li>
</ul>
</nav>
</headr>
<script>Jquery</script>
<script>
$('#menu').each(function(){
$(this).css("height",$(this).height()+"px");
});
$('#btn').click(function () {
$('#menu').slideToggle('slow');
$(this).toggleClass('active');
});
</script>
ご回答ありがとうございます。
教えていただいたコードに変更して試してみましたが、
状況は変わらずボタンでしか操作できないようです。
ただ、コードは非常に簡素化されてスッキリしました。
ありがとうございます。
こちらのコードで試してみたところ、
パソコンでは思い通りの動作になりました。
ただ、タブレットやスマホでタップしても反応しません。
これをタップでも可能にするにはどうすればいいでしょうか?