单击项目(小屏幕设备)时,导航栏固定不会折叠

时间:2018-01-29 20:38:55

标签: javascript jquery twitter-bootstrap bootstrap-4

我使用bootstrap 4并且我有使用bootstrap 3的解决方案,但是看起来与bootsrap 4不太相同。我陷入了困境,这是完成项目所需的最后一件事。 这是我的导航栏(带引导程序4):

 <nav class="navbar fixed-top navbar-expand-lg navbar-light pink" id="navbar-fixed">
        <a class="navbar-brand" href="#"><img src="images/perfect-party-rental-logo.jpg" class="logo"></a>
        <!-- Collapse button -->
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupported" aria-controls="navbarSupported"
    aria-expanded="false" aria-label="Toggle navigation"></button>
<!-- Collapsible content -->
<div class="collapse navbar-collapse" id="navbarSupported">
        <ul class="navbar-nav mr-auto">
            <li class="nav-item">
              <a class="nav-link active" href="#home"><i class="fa fa-home" aria-hidden="true"></i> Home<span class="sr-only">(current)</span></a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#inflatables"><i class="fa fa-smile-o" aria-hidden="true"></i> Inflatables</a>
            </li>... <!--ETC-->

这是来自bootstrap 3的JS代码snipppet:

            $(".navbar-collapse ul li a").click(function(event) {
      $(".navbar-collapse").collapse('hide');
    });

控制台一直说“崩溃”不是一个功能:S

有任何线索吗?

1 个答案:

答案 0 :(得分:1)

以下是 Bootstrap 4 中工作导航栏的示例(您可以看到它不需要任何其他JavaScript代码段)。

点击“运行代码段”按钮,然后展开到全屏进行测试:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <a class="navbar-brand" href="#">Navbar</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 active">
        <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Link</a>
      </li>
      <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
          Dropdown
        </a>
        <div class="dropdown-menu" aria-labelledby="navbarDropdown">
          <a class="dropdown-item" href="#">Action</a>
          <a class="dropdown-item" href="#">Another action</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="#">Something else here</a>
        </div>
      </li>
      <li class="nav-item">
        <a class="nav-link disabled" href="#">Disabled</a>
      </li>
    </ul>
    <form class="form-inline my-2 my-lg-0">
      <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
      <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
    </form>
  </div>
</nav>

<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

编辑(从我的评论中添加):

我检查了你的codepen,当它在我身边工作时,我在控制台中看到了这个:“Uncaught Error:Bootstrap下拉需要Popper.js”,这意味着你没有加载popper。在Bootstrap 4中弹出或下拉的所有东西都需要js。使用我在代码片段底部包含的文件,它应该可以工作。此外,在您的codepen中,您正在加载bootstrap 4.0.0-beta.2。该版本现在过时。复制并粘贴我的代码段中的所有内容。这就是我为你发布的原因。