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

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

新規登録して質問してみよう
ただいま回答率
85.35%
jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

2226閲覧

ページ内リンクでハンバーガーメニューが閉じる様にしたい!!

niwaco

総合スコア1

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/05/16 01:54

前提・実現したいこと

ページ内リンクでハンバーガーメニューが閉じる様にしたい!!

ハンバーガーメニューをなんとか完成させたと思ったのですが、
ページ内のリンクを設定してみたところハンバーガーメニューが閉じない不具合が発生しました。
jQueryのコードが足りていないのかとは思いながらも
何を書き足せば解決できるのか悩みあらゆるコードを書いてみましたが解決できませんでした。
お力をお借りできますと幸甚です。

発生している問題・エラーメッセージ

ページ内リンクでハンバーガーメニューが閉じない。 jQueryに足りない言葉・問題があるかと思っております。

該当のソースコード

<nav class="menu_nav"> <ul> <li><a href="#a">トップ</a></li> <li><a href="#b">ブランド</a></li> <li><a href="#c">ニュース</a></li> <li><a href="#d">会社案内</a></li> <li><a href="#e">お問い合わせ</a></li> </ul> </nav> <div class="menu_toggle"> <span class="toggle-span"></span> <span></span> <span></span> </div>

試したこと

下記のjQueryなどを試していました。

$('#menu_nav a[href]').on('click', function(event) { $('.menu_toggle').trigger('click'); });

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

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

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

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

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

guest

回答1

0

ベストアンサー

jQuery難しいですよね(´ω`)私も結構詰まりました。
でも分かるようになったら簡単になってくるので、正解は書かずに、糸口だけ載せようと思います。

jQueryの記述は

$( セレクタ ).メソッド ( パラメータ );

です。すごくざっくばらんに言うと

$('今回確認するもの').が('ほにゃららになった時', 下記を実行してね() { 実行内容; });

みたいな感じです。(onとかやfunction(hoge)の説明は割愛)
実行内容のところは最初の今回確認するもの(this)になる場合もあるし別のセレクタを当てはめることも出来ます。
niwacoさんの記述では、

$('#menu_nav a[href]').on('click', function(event) { $('.menu_toggle').trigger('click'); });

ですので、#menu_nav a[href]がclickされた時、発動。.menu_toggleをclickしてください。というようなものになっています。
今のままだと、jQueryは何の動きもしない要素を2回クリックしたことになってます。

行いたい事はハンバーガーメニューを押すと出たり隠れたりすることだと思いますので
・CSSで動かしたい(出てきて欲しい)要素に設定を加える
(左から右に出てきて欲しいならtransform出てくるならdisplayなどで検索すれば出ると思います)
これは下記に出てくる'与えるクラス'も設定する必要があります。

・jQueryの記述を

$('ハンバーガーメニューのボタン').on('click', function() { $('ハンバーガーメニューの要素(ul部分)').toggleClass('与えるクラス'); });

などにすると良いかなと思います

長くなってしまいましたが、一概に正解ではないので、色々確認しながら答えを見つけて頂ければ幸いです
頑張って下さい。

投稿2021/05/16 02:45

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

niwaco

2021/05/16 13:41

ありがとうございます! 最初どういうことだろう?と悩んでいましたが、おかげさまでやりたかったことができました スッキリしました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問