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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

レスポンシブWebデザイン

レスポンシブWebデザイン(RWD)は、スクリーンのサイズ、プラットフォーム、オリエンテーションに基づいて様々なデバイスで最適のサイトを生成するのウェブデザインとその開発のアプローチ方法を呼びます。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

Q&A

解決済

2回答

912閲覧

ハンバーガーメニューがページ遷移後に閉じれなくなる

kobatomo-0725

総合スコア5

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

レスポンシブWebデザイン

レスポンシブWebデザイン(RWD)は、スクリーンのサイズ、プラットフォーム、オリエンテーションに基づいて様々なデバイスで最適のサイトを生成するのウェブデザインとその開発のアプローチ方法を呼びます。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

0グッド

0クリップ

投稿2021/07/15 07:57

編集2021/07/15 08:12

学習歴3ヶ月の者です。現在ポートフォリオを作成中でbootstrapのNavbarのヘッダーを使用しています。
ハンバーガーメニュー部分がレスポンシブ時に、閉じれない状態です。

application.html.erb内の<script>内にて、javascriptで閉じるようにしたのですが、読み込んで最初のページではうまく閉じることができても、別のページに遷移した後、メニューを開くと、再び閉じれなくなります。

何が原因でハンバーガーメニューが閉じれないのでしょうか?
どなたか教えていただけたら幸いです。よろしくお願いします。

layouts/application.html.erb

<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>Mygourmet</title> <%= csrf_meta_tags %> <%= csp_meta_tag %> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> <!--bootstrapを使用--> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <!--fontawesomeを使用--> <script defer src="https://use.fontawesome.com/releases/v5.15.3/js/all.js" integrity="sha384-haqrlim99xjfMxRP6EWtafs0sB1WKcMdynwZleuUSwJR0mDeRYbhtY+KPMr+JL6f" crossorigin="anonymous"></script> </head> <body> <script src="https://code.jquery.com/jquery-3.6.0.js" integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script> <script> //ハンバーガーメニューを閉じれるよう設定 $('.navbar-nav>li>a , .dropdown-menu>a').on('click', function(){ if(this.id != 'navbarDropdown'){ $('.navbar-collapse').collapse('hide'); } }); </script> <div id="wrapper"> <%= render "layouts/header" %> <% if notice %><p id="notice" class="alert alert-warning"><%= notice %></p><% end %> <% if alert %><p id="alert" class="alert alert-danger"><%= alert %></p><% end %> <%= yield %> <%= render "layouts/footer" %> </div> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.min.js" integrity="sha384-+YQ4JLhjyBLPDQt//I+STsc9iw4uQqACwlvpslubQzn4u2UU2UFM80nGisd026JF" crossorigin="anonymous"></script> </body> </html>

layouts/_header.html.erb

<header class="navbar navbar-expand-lg navbar-light sticky-top"> <%= link_to "My Gourmet", posts_path, class: "navbar-brand logo" %> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Togglenavigation" id="hamburger"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarNav"> <ul class="navbar-nav ml-auto"> <!--ユーザーがサインイン状態の場合--> <% if user_signed_in? %> <li class="nav-item"> <%= link_to new_post_path, class: "nav-link" do %> <i class="fas fa-plus"></i>&ensp;新規投稿 <% end %> </li> <li class="nav-item"> <%= link_to mypage_users_path, class: "nav-link" do %> <i class="fas fa-user"></i>&ensp;マイページ <% end %> </li> <li class="nav-item"> <%= link_to logout_path, class: "nav-link" do %> <i class="fas fa-sign-out-alt"></i>&ensp;ログアウト <% end %> </li> <!--ユーザーがサインアウト状態の場合--> <% else %> <li class="nav-item"> <%= link_to "新規投稿", login_path, class: "nav-link" %> </li> <li class="nav-item"> <%= link_to "ログイン", login_path, class: "nav-link" %> </li> <li class="nav-item"> <%= link_to "新規会員登録", signup_path, class: "nav-link" %> </li> <% end %> </ul> </div> </header>

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

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

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

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

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

Lhankor_Mhy

2021/07/15 08:09

質問タグにrailsタグを追加することをおすすめします。なんとなくですが、turbolinksの問題のような気がします。
makox0105

2021/07/15 08:23 編集

ブラウザを更新すると正常に戻りますか?
kobatomo-0725

2021/07/15 08:25

なるほど、turbolinksあたりで調べてみます!
kobatomo-0725

2021/07/15 08:27

はい! ブラウザを更新すると正常にメニューを閉じることができます。 しかし、そこからページ遷移するとだめになります。
guest

回答2

0

自己解決

turbolinksを無効にしたことでjsファイルがページ遷移後も読み込まれるようにした

投稿2021/07/15 09:25

kobatomo-0725

総合スコア5

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

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

0

turbolinksを無効にしてみてください。

投稿2021/07/15 08:29

makox0105

総合スコア65

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

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

kobatomo-0725

2021/07/15 08:39

turbolinksは画面遷移を高速化させてくれるという認識なのですが、それを無効にしてしまっても大丈夫でしょうか?
makox0105

2021/07/15 09:01

はい、大丈夫です。 あまりturbolinksの恩恵は受けてないケースも多々有り、私は無効にしてます。
kobatomo-0725

2021/07/15 09:24

無効にしてみましたが確かにあまり速度に違いはなさそうですね。笑 このまま無効にしたまま行こうと思います。 ご回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問