質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
メニュー

メニューは、UIにおける仕組みであり、ユーザに機能の表示と実行する手段を与えます。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

1685閲覧

トグル 領域外 閉じる

退会済みユーザー

退会済みユーザー

総合スコア0

メニュー

メニューは、UIにおける仕組みであり、ユーザに機能の表示と実行する手段を与えます。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2018/04/17 06:29

編集2018/04/17 07:15
<script> (function($) { $(function() { var $header = $('#top-head'); // Nav Fixed $(window).scroll(function() { if ($(window).scrollTop() > 350) { $header.addClass('fixed'); } else { $header.removeClass('fixed'); } }); // Nav Toggle Button $('#nav-toggle').click(function(){ $header.toggleClass('open'); }); }); })(jQuery); </script> </head> <header id="top-head"> <div class="inner"> <div id="mobile-head"> <h1 class="logo"><a href="index.html"><img src="images/logo.png" width="150px" alt="#"></a></h1> <div id="nav-toggle"> <div> <span></span> <span></span> <span></span> </div> </div> </div> <nav id="global-nav"> <ul> <li><a href="#">#</a></li> <li><a href="#">#</a></li> <li><a href="#">#</a></li> <li><a href="#">#</a></li> </ul> </nav> </div> </header> コード

こんにちは。
ハンバーガーメニューを挿入しました。
メニュー領域外をタップした時に、
メニューを閉じさせたいです。

$('#menu').click(function() { event.stopPropagation(); });

こちらを挿入したのですが、閉じませんでした。

#menu ```の部分に、 全てのIDを試してみたのですが、ダメでした・・・ 他のサイトでは、 stopPropagationを容易に使うのも、 あまり良くないとかいてありました。 この場合、何が最善でしょうか? JavaScript や JQueryがとても苦手なので、苦戦しております。 お力添えお願いします!!!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

x_x

2018/04/17 07:55

タップと書いていますが、端末は何でしょうか?
退会済みユーザー

退会済みユーザー

2018/04/17 08:37

端末は、スマホなど、画面の小さいものを想定してます!
guest

回答2

0

ベストアンサー

メニュー範囲が思っているのと違うなら調整してください。

JavaScript

1 $(document).on('click touchstart', function(event) { 2 if (!$(event.target).closest('#top-head').length) { 3 $header.removeClass('open'); 4 } 5 });

投稿2018/04/17 08:00

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/17 08:39

できました!!!!! ありがとうございます。 本当に助かりました。 感謝しきれないです。。ありがとうございます!!!
退会済みユーザー

退会済みユーザー

2018/04/17 10:35

度々すみません。 こちらのscriptは、iframeの表示領域には反応しないでしょうか? 1ページ、アイフレームを使って構成しているものがありまして、 最初はそのページの何かが邪魔しているのかと色々試したのですが、 どうやらアイフレーム領域が反応しないようです。 こちらへの対処法が、あればお教えいただきたいです。 よろしくお願いいたします。
guest

0

解決につながるか分かりませんが、
ひとまず、id="menu" がhtml内のどこにもありません。
event もfunction(event) のように受け取らないと使えないはずです。

javascript

1$('#menu').click(function(event) { 2 event.stopPropagation(); 3});

何も渡さないとブラウザ開発ツールのコンソールにエラーが出力されるように思います。

他のサイトでは、

stopPropagationを容易に使うのも、
あまり良くないとかいてありました。

そのサイトを可能であればご提示ください。
「あまり良くない」では「実現のために使わない」根拠としては薄いです。

------以下、蛇足

Java や JQery

JavaとJavaScriptは似て非なるものなので一緒にしてはいけません。
(メロンとメロンパンくらい違うという比喩を見かけました。すごく納得がいきます。)
あとJQeryではなくjQueryですね。なるべく表記は正しいものを。

投稿2018/04/17 06:56

m.ts10806

総合スコア80842

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/17 07:14

ご回答ありがとうございます! まず、JavaとJQueryの件失礼いたしました。気をつけます。 あまり良くないと思ったというところの、サイトです。 あまり良くない、ではなく、 あまりオススメしないと書いてありました。 https://www.plusdesign.co.jp/blog/?p=5468 #menuですが、#menuがないのはわかるのですが、そのほかのID全て動作しませんでした。
m.ts10806

2018/04/17 07:37

こちらの方が記事としてまとまっているように思います。 https://qiita.com/mabots/items/74c21ebcedf0004f7fb5 closest('#target'). の部分を closest('#top-head'). か  closest($header). と変えて、 // ここに処理; の部分をトグルクローズで書いてみてください。
退会済みユーザー

退会済みユーザー

2018/04/17 10:33

お返事いただいていたの見落としていました! ありがとうございます。記事も参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問