Bootstrap: TypeError: $(...). Modal не является функцией

я пытался вызвать модал начальной загрузки из jquery и продолжаю получать это сообщение об ошибке:

TypeError: $(...).modal is not a function

Вот мой код:

<button id="btnTest" class="btn btn-default">Show Modal</button>
<div id="dummyModal" role="dialog" class="modal fade">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" data-dismiss="modal" class="close">&times;</button>
          <h4 class="modal-title">Error</h4>
        </div>
        <div class="modal-body">
          <p>Quick Brown Fox Jumps Over The Lazy Dog</p>
        </div>
        <div class="modal-footer">
          <button type="button" data-dismiss="modal" class="btn btn-default">Close</button>
        </div>
      </div>
    </div>
  </div>
</div>
<script type="text/javascript" src="/js/jquery-1.11.3.js"></script>
<script type="text/javascript" src="/js/bootstrap.js"></script>
<script type="text/javascript">
  $('document').ready(function () {
    $('#btnTest').click(function () {
        $('#dummyModal').modal('show');
    });
  });
</script>

К вашему сведению, я использую Boosttrap 3.3.5 и JQuery 1.11.3. я пробовал jQuery.noConflict();... etc jQuery.noConflict();... etc из этой темы, но все равно не повезло. Здесь полный код

Ответ 1

Используйте это. Это будет работать. Я использовал bootstrap 3.3.5 и jquery 1.11.3

$('document').ready(function() {
  $('#btnTest').click(function() {
    $('#dummyModal').modal('show');
  });
});
body {
  background-color: #eee;
  padding-top: 40px;
  padding-bottom: 40px;
}
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
  <title>Modal Test</title>
</head>

<body>
  <div class="container">
    <button id="btnTest" class="btn btn-default">Show Modal</button>
    <div id="dummyModal" role="dialog" class="modal fade">
      <div class="modal-dialog">
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" data-dismiss="modal" class="close">&times;</button>
            <h4 class="modal-title">Error</h4>
          </div>
          <div class="modal-body">
            <p>Quick Brown Fox Jumps Over The Lazy Dog</p>
          </div>
          <div class="modal-footer">
            <button type="button" data-dismiss="modal" class="btn btn-default">Close</button>
          </div>
        </div>
      </div>
    </div>
  </div>
  <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
  <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</body>

</html>

Ответ 2

Я также столкнулся с такой же ошибкой, когда я пытался вызвать bootstrap modal из jquery. Но это происходит потому, что мы используем bootstrap modal, и для этого нам нужно прикрепить один cdn bootstrap.min.js, который

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

Надеюсь, это поможет, поскольку я пропустил это, когда я пытался вызвать bootstrap modal из jQuery, используя

$('#button').on('click',function(){ $('#myModal').modal(); });

myModal - это идентификатор Bootstrap modal и вы должны дать клик на кнопку, когда вы нажмете эту кнопку, появится всплывающее модальное сообщение.

Ответ 3

Я получал ту же ошибку из-за добавления jquery CDN (<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>) два раза в заголовке HTML.

Ответ 4

Если вы используете любую страницу макета, переместите разделы script из нижней части в головную часть на странице макета. bcz, сначала загружаются файлы javascript. Это сработало для меня