Всплывающее окно Boostrap отображает только заголовок и перестает работать после первого переключения

#twitter-bootstrap #bootstrap-5

#twitter-bootstrap #начальная загрузка-5

Вопрос:

Так что я действительно в тупике, потому что я буквально использую пример документации, а он просто отказывается работать. У меня есть

  1. Импортный Бустреп
  2. Импортный Поповер
  3. Инициализированные всплывающие подсказки
  4. Инициализированное всплывающее окно

Все в соответствии с документацией.

Затем я добавил следующий код для проверки всплывающих окон:

 <button type="button" class="btn btn-lg btn-danger" data-bs-toggle="popover" title="Popover title" data-bs-content="And here's some amazing content. It's very engaging. Right?">Click to toggle popover</button>
 

Это тот же код, что и в документации, всплывающее окно отображается, но неправильно, оно отображает только заголовок, а не содержимое. И как только первое переключение завершено, иначе говоря, как только вы показываете, а затем скрываете всплывающее окно, оно больше не отображается.

Скриншот того, что происходит

Кстати, вот мой код:

 <!DOCTYPE html>
<html lang="en">
   <head>
      <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
      <link href="styles.css" rel="stylesheet">

      <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C OGpamoFVy38MVBnE IbbVYUew OrCXaRkfj" crossorigin="anonymous"></script>
      <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.10.2/dist/umd/popper.min.js" defer></script>
      <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho j7jyWK8fNQe A12Hb8AhRq26LrZ/JpcUGGOn Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
      <script src="./assets/scripts/init-tooltips.js" defer></script>
      <script src="./assets/scripts/init-popover.js" defer></script>

      <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

      <nav class="navbar sticky-top navbar-expand-lg navbar-light bg-light">
         <a class="navbar-brand" href="#">About me</a>
         <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
         <span class="navbar-toggler-icon"></span>
         </button>
         <div class="collapse navbar-collapse" id="navbarSupportedContent">
            <ul class="navbar-nav mr-auto">
            <li class="nav-item">
               <a class="nav-link" href="./index.html">Introduction</a>
            </li>
            <li class="nav-item">
               <a class="nav-link" href="./life.html">Life</a>
            </li>
            <li class="nav-item active">
               <a class="nav-link" href="./life.html">Education</a>
            </li>
            <li class="nav-item">
               <a class="nav-link" href="#">Projects</a>
            </li>
         </div>
      </nav>
   </head>
   <body>
        <h1 class="center">Education</h1>
        <figure class="center">
           <img src=./assets/images/1.jpeg>
           <img src=./assets/images/2.jpeg>
           <img src=./assets/images/3.jpeg>
           <img src=./assets/images/4.jpeg>
           <img src=./assets/images/5.jpeg>
        </figure>
      <button type="button" class="btn btn-lg btn-danger" data-bs-toggle="popover" title="Popover title" data-bs-content="And here's some amazing content. It's very engaging. Right?">Click to toggle popover</button>
      <p>test</p>
   </body> 

Ответ №1:

Это потому, что вы используете data-bs-popover и data-bs-content на кнопке, и это форматирование Bootstrap 5.

Вы вызываете Bootstrap 4 с

  <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3...........</script>
 

Используйте data-popover и data-content для начальной загрузки 4.

Комментарии:

1. аааа! Спасибо! Я прохожу курс Cs50 в Гарварде, и они дали нам предварительно заполненный HTML-файл с пробелами для заполнения. Однако вся документация предназначена для bootstrap 5! Теперь все работает! Спасибо!

2. Возможно, более простой способ — вызвать v5 вместо v4, если весь ваш контент отформатирован таким образом. Вообще говоря, вам просто нужно не забыть вставить -bs- в середину для форматирования, если что-то окажется не на своем месте.