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

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

ただいまの
回答率

87.48%

ドロップダウンメニューが開くようにしたい。

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 272

score 0

前提・実現したいこと

自作アプリケーションのナビバーにboostrapで作成したドロップダウンメニューが開かなくなるという問題が発生したため、解決のために皆様のお力をお借りできれば幸いです。

ナビバーのコード

<header>
  <nav class="navbar navbar-expand-sm navbar-dark bg-dark">
    <a class="navbar-brand font-select" href="/">BR</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent">
      <span class="navbar-toggler-icon"></span>
    </button>

    <div class="collapse navbar-collapse justify-content-end" id="navbarSupportedContent">
      <ul class="navbar-nav">
        <% if logged_in? %>
          <li class="nav-item dropdown">
            <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">書籍情報</a>
            <ul class="dropdown-menu" aria-labelledby="navbarSupportedContent">
              <li class="dropdown-item"><%= link_to '所有済', own_books_path %></li>
              <li class="dropdown-divider"></li>
              <li class="dropdown-item"><%= link_to '未所持', notyet_books_path %></li>
              <li class="dropdown-divider"></li>
              <li class="dropdown-item"><%= link_to 'お気に入り', own_books_path %></li>
              <li class="dropdown-divider"></li>
              <li class="dropdown-item"><%= link_to '新規作成', new_book_path %></li>
            </ul>
          </li>
          <li class="nav-item dropdown">
            <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><%= current_user.name %></a>
            <ul class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarSupportedContent">
              <li class="dropdown-item"><%= link_to 'プロフィール', user_path(current_user) %></li>
              <li class="dropdown-divider"></li>
              <li class="dropdown-item"><%= link_to 'ログアウト', logout_path, method: :delete %></li>
            </ul>
          </li>
        <% else %>
          <li class="nav-item"><%= link_to "Signup", signup_path, class: "nav-link font-select" %></li>
          <li class="nav-item"><%= link_to 'Login', login_path, class: 'nav-link font-select' %></li>
        <% end %>
      </ul>
    </div>
  </nav>
</header>

試したこと

ディベロッパーツールなどで挙動を確認しつつ、動かしてみたところ aria-expanded="false" が本来であればクリック時に aria-expanded="true" に変化していなければならいはずなのですが、 aria-expanded="false" のままであることは確認できました。
リロードを行うとメニューの開閉が出来るようになるのですが、なぜそのような挙動になるのか調べても原因を突き止めることができませんでした。

補足情報(FW/ツールのバージョンなど)

boostrapはCDNを使って読み込んでいます。

<!DOCTYPE html>
<html lang="ja">
  <head>
    <title>BookRecord</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <mata name="description" content="Book Recordはあなたがお持ちの書籍を管理するためのアプリケーションです">
    <%= csrf_meta_tags %>
    <%= csp_meta_tag %>

    <link href="https://fonts.googleapis.com/css?family=Kaushan+Script" rel="stylesheet">

    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css">



    <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>


    <script defer src="https://use.fontawesome.com/releases/v5.7.2/js/all.js"></script>
  </head>

  <body>
    <!--<div class="container">-->
      <%= render 'layouts/flash_messages' %>



      <%= yield %>
    <!--</div>-->
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js"></script>
  </body>
</html>


CDN用のコードは最初に<head>内に書き込んでいましたが、様々な記事で<body>内に書き込んでいる記事が多く見られたので現在は<body>内に記述しています。

誤りの部分等があれば、ご指摘いただけると幸いです。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • cerfweb

    2020/12/07 19:02

    生成されたhtmlではなく、テンプレートを提示する場合は、テンプレート言語やフレームワーク名をタグに入れた方が回答がつきやすくなると思いますよ。

    キャンセル

  • cerfweb

    2020/12/09 00:48

    「リロードを行うとメニューの開閉が出来るようになる」とありますが、どういう状態だと開閉ができないのでしょうか。状況が再現ができません。
    やはり生成されたhtmlを掲載していただいた方が回答を得やすいかと思います。

    キャンセル

まだ回答がついていません

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

  • ただいまの回答率 87.48%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

閲覧数の多いRubyの質問