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

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

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

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

JavaScript

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

jQuery

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

Bootstrap

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

HTML

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

Q&A

解決済

1回答

2651閲覧

Bootstrapのdropdownの不具合

SomaSekimoto

総合スコア9

Ruby on Rails

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

JavaScript

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

jQuery

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

Bootstrap

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

HTML

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

0グッド

0クリップ

投稿2020/04/02 14:47

前提・実現したいこと

rails でアプリ開発中、Bootstrapでdropdownをつけたのだが、ページ遷移後の最初のクリックで、dropdown-itemが表示されない。

二回目のクリックからは正常に動く。

該当のソースコード

ユーザーページのhtmlファイルです。

haml

1       .col-4.text-center.shadow.btn.btn-info.dropdown-toggle#dropdownMenuButton{data: {toggle: "dropdown"}, aria: {haspopup: "true", expanded: "false"}} 2 その他 3 .dropdown-menu.dropdown-menu-right{aria: {labelledby: "dropdownMenuButton"}} 4 - if user_signed_in? && @user.id == current_user.id 5 .text-decoration-none.dropdown-item= link_to "情報編集", edit_user_registration_path(@user) 6 - else 7 .text-decoration-none.dropdown-item= link_to "ダイレクトメッセージ", "#" 8 - if user_signed_in? && @user.id == current_user.id 9 .text-decoration-none.dropdown-item= link_to "ログアウト", destroy_user_session_path, method: :delete 10 - else 11 .text-decoration-none.dropdown-item= link_to "通報する", "#"

application.html.haml ヘッド部分

html

1%head 2 %meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/ 3 %title Moyoshi 4 = csrf_meta_tags 5 = csp_meta_tag 6 = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' 7 = stylesheet_link_tag "https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.5.0/css/swiper.min.css" 8 = javascript_include_tag "https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.5.0/js/swiper.min.js" 9 = javascript_include_tag 'application', 'data-turbolinks-track': 'reload' 10 11 %body 12 以下省略

application.js

Javascript

1// This is a manifest file that'll be compiled into application.js, which will include all the files 2// listed below. 3// 4// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, or any plugin's 5// vendor/assets/javascripts directory can be referenced here using a relative path. 6// 7// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the 8// compiled file. JavaScript code in this file should be added after the last require_* statement. 9// 10// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details 11// about supported directives. 12// 13//= require jquery 14//= require rails-ujs 15//= require popper 16//= require bootstrap-sprockets 17//= require bootstrap 18//= require activestorage 19//= require bootstrap-tagsinput 20 21//= require_tree . 22

試したこと

popper.jsの有無の確認と、読み込む順番の変更をしてみたが、変化なし。

turbolinksは消しています。

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

ruby 2.5.1p57
rails 5.2.4.2
jquery-rails 4.3.5
bootstrap 4.4.1
popper_js 1.16.0

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

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

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

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

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

guest

回答1

0

ベストアンサー

HTMLの構造を確認すると良いかもしれません。
公式を見ると<div class="dropdown"></div>が必要なようです。

公式:https://getbootstrap.jp/docs/4.3/components/dropdowns/#single-button

参考:https://pisuke-code.com/bootstrap-why-not-work-dropdown/


追記

確認事項①
公式を見ると必要なapplication.jsに必要な設定は下記のようですので、必要ないもの(bootstrap-sprockets)は削除し下記の順番通りにしてください。

//= require jquery3 //= require popper //= require bootstrap

https://github.com/twbs/bootstrap-rubygem

確認事項②
hamlやslimなどを利用しているとタブの間違いの可能性があるかと思います。
実行環境でChromeの「ページのソースを表示」または「検証」で正しくHTML構造がbootstrap公式通りになっているか確認してみてください。

投稿2020/04/02 22:59

編集2020/04/03 02:52
no1knows

総合スコア3365

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

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

SomaSekimoto

2020/04/03 01:58

返信ありがとうございます!! 上記のページを参考に、dropdownクラスを追加してみましたが、変化なしでした。また、popper.jsをapplication.html.hamlに追記もしてみたのですが変わらずです。
no1knows

2020/04/03 02:53

> popper.jsをapplication.html.hamlに追記 は基本的に必要ないはずです。追記しましたので確認をお願いします。
SomaSekimoto

2020/04/03 08:37

application.js以下のようにしたら、上手く動作しました!!bootstrap-sprocketsはいらないんですね。その辺全く知らなかったです。。 解決していただき、ありがとうございます!!
no1knows

2020/04/03 09:36

できる限り公式を見る癖をつけると色々と捗るかと思います。 解決してよかったです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問