bootstrap loaded:false モーダルの動作不良
bootstrapが動作せず、モーダルが正常に機能しない。
Ruby on Railsで模擬宿泊予約サイトをつくっています。
外部で受講している講座の課題となります。
モーダルが正常に動作しない課題があり、エラーメッセージ等も明確なものがなく苦慮しています。
発生している問題・エラー
予約内容の削除等を行うモーダルの機能が意図した通りに動作しません。
モーダルは添付のように表示されますが、こちらが設定した内容ではなく、さらに削除ボタンを押しても動作しません。
検証ツール上もbootstrap loaded :false は表示されますが、エラーメッセージ等はありません。
また指導者の方にgithub上からソースコードをインストールいただき、試していただいたところbootstrap loaded:trueとなり、削除も動作するとのことで、自身の環境の問題であると考えています。
出ているエラーメッセージを入力
bootstrap loaded :false のみ
該当するソースコード
<!DOCTYPE html>
<html>
<head>
<title>Potepan Share</title>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<!-- CSSの読み込み -->
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- JavaScriptの読み込み -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>
<body>
<header>
<nav class="nav-wrapper">
<div class="container">
<a href="/" class="brand-logo">
<img src="https://rails-02-sample.herokuapp.com/assets/common/logo.png" alt="Potepan Share">
</a>
<ul id="nav-mobile" class="right">
<% if user_signed_in? %>
<li>
<a href="#" class="account-menu-toggle">
<% if current_user.profile_image.present? %>
<img src="<%= current_user.profile_image.url %>" alt="Profile Image" class="profile-icon">
<% else %>
<i class="fas fa-user"></i>
<% end %>
<%= current_user.name %>
</a>
<ul class="account-menu">
<li><%= link_to '施設の新規登録', new_hotel_path %></li>
<li class="separator"></li>
<li><%= link_to '予約済み一覧', hotel_reservations_path(current_user) %></li>
<li><%= link_to '登録済み一覧', my_hotels_hotels_path %></li>
<li><%= link_to 'アカウント設定', show_account_account_settings_path %></li>
<li class="separator"></li>
<li><%= link_to 'ログアウト', destroy_user_session_path, method: :delete %></li>
</ul>
</li>
<% else %>
<li><%= link_to 'ログイン', new_user_session_path %></li>
<li><%= link_to '新規登録', new_user_registration_path, class: 'register-button' %></li>
<% end %>
</ul>
</div>
</nav>
</header>
<main>
<%= yield %>
</main>
<footer>
<div class="footer-content">
<a href="/" class="footer-logo">
<img src="https://rails-02-sample.herokuapp.com/assets/common/logo.png" alt="Potepan Share">
</a>
<p>© Potepan Share 2024 All rights reserved</p>
</div>
</footer>
<!-- 削除確認モーダル -->
<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="deleteModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="deleteModalLabel">削除の確認</h5>
<button type="button" class="close" data-bs-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p id="deleteModalBody"></p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">キャンセル</button>
<button type="button" class="btn btn-danger" id="confirmDeleteButton">削除</button>
</div>
</div>
</div>
</div>
<script>
document.addEventListener('turbolinks:load', () => {
// モーダルの初期化などのコードをここに追加
$('#deleteModal').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget); // ボタンがモーダルをトリガーした
var recipient = button.data('whatever'); // ボタンから情報を抽出
// モーダルのボディに情報を更新
var modal = $(this);
modal.find('.modal-body').text('Are you sure you want to delete ' + recipient + '?');
});
});
</script>
</body>
</html>
### 自分で試したこと
rails newでプロジェクトを新規で作成し、そこにフォルダを移し替えしたが改善せず
その他、キャッシュのクリアやnodeやnpmのバージョンや依存関係を再インストールの実施