Bootstrap 导航栏切换按钮不起作用

Bootstrap Navbar toggle button not working

当我缩小 window 并单击按钮时,它没有响应。我该如何解决这个问题?

<button type="button" 
        class="navbar-toggle" 
        data-toggle="collapse" 
        data-target=".navbar-collapse">

    <span class="sr-only">Toggle navigation</span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
</button>

<div class="collapse navbar-collapse">
    <ul class="nav navbar-nav">
        <li>
            <a href="">Page 1</a>
        </li>
        <li>
            <a href="">Page 2</a>
        </li>
        <li>
            <a href="">Page 3</a>
        </li>
    </ul>

库是 jQuery 2.1.3 和 bootstrap 3.3.1。

演示:http://jsfiddle.net/u1s62Lj8/1/

您的 HTML 页面中需要 jQuery 和 Boostrap Javascript 文件才能使切换正常工作。 (确保在 Bootstrap 之前包含 jQuery。)

<html>
   <head>
       // stylesheets here
       <link rel="stylesheet" href=""/> 
   </head>
   <body>
      //your html code here

      // js scripts here
      // note jquery tag has to go before boostrap
      <script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
      <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
   </body>
</html>

您的代码看起来很棒,我唯一看到的是您没有在按钮选择器中包含折叠的 class。 http://www.bootply.com/cpHugxg2f8 注意:需要 JavaScript 插件 如果 JavaScript 被禁用并且视口足够窄以至于导航栏折叠,将无法展开导航栏并查看 .navbar-collapse 中的内容。

响应式导航栏要求折叠插件包含在您的 Bootstrap 版本中。

<div class="navbar-wrapper">
      <div class="container">

        <nav class="navbar navbar-inverse navbar-static-top">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              <a class="navbar-brand" href="#">Project name</a>
            </div>
            <div id="navbar" class="navbar-collapse collapse">
              <ul class="nav navbar-nav">
                    <li><a href="">Page 1</a>
                    </li>
                    <li><a href="">Page 2</a>
                    </li>
                    <li><a href="">Page 3</a>
                    </li>

              </ul>
            </div>
          </div>
        </nav>

      </div>
    </div>

如果您要更改 ID,那么 Toggle 将无法正常工作 我也遇到过同样的问题,我只是更改了

<div class="collapse navbar-collapse" id="defaultNavbar1">
    <ul class="nav navbar-nav">

id="defaultNavbar1" 那么切换就可以了

记得在bootstrap js

之前加载jquery

浪费了几个小时才意识到我的代码中缺少视口元数据。在这里添加以防其他人错过它。

我一添加这个,切换就开始正常工作了。

<meta name="viewport" content="width=device-width, initial-scale=1">

因为您必须 jquery 设置才能启用切换按钮的切换功能。所以,你所要做的就是在 bootstrap.css:

之前添加 bootstrap.bundle.js
<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/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>

我遇到了同样的问题。

我在头文件中以错误的顺序添加了 jQuery 和 bootstrap。

我必须在 bootstrap 之前加载 jQuery,这解决了问题。

在 Bootstrap 中,5 个数据属性现在在带有“bs”的 js 插件中命名空间,因此例如 data-toggle 将不再起作用,您将需要改为使用 data-bs-toggle

不要加载两次 jquery & bootstrap 库。

删除重复项后,工作正常。

在Bootstrap5中,将data-toggle改为data-bs-toggledata-targetdata-bs-target.

请注意,bs 已添加到此版本中的 data 属性。