简体   繁体   English

Bootstrap导航栏下拉故障

[英]Bootstrap navbar dropdown glitch

So, I just copied a code snippet for the navbar form from bootswatch and directly imported the required JQuery, bootstrap css and js files as you can see in the snippet below. 因此,我只是从bootswatch复制了navbar表单的代码段,并直接导入了所需的JQuery,bootstrap css和js文件,如下面的代码段所示。 It is being responsive when the browser is resized but when I click the button to get the dropdown menu of the navbar it glitches and doesn't go down and stay there but toggles back on its own. 调整浏览器大小时,它正在响应,但是当我单击该按钮以获取导航栏的下拉菜单时,它会出现故障,不会下降并停留在那里,而是会自行切换。

No tweaks or changes has been made in the code and it works fine on the bootswatch website but it doesn't here. 代码中没有进行任何调整或更改,并且可以在bootswatch网站上正常运行,但不在此处。 Can anyone explain why and give a fix? 谁能解释原因并给予解决?

 <link rel="stylesheet" href="https://bootswatch.com/4/united/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> <a class="navbar-brand" href="#">Navbar</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarColor02" aria-controls="navbarColor02" aria-expanded="false" aria-label="Toggle navigation" style=""> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarColor02"> <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="#">Features</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Pricing</a> </li> <li class="nav-item"> <a class="nav-link" href="#">About</a> </li> </ul> <form class="form-inline my-2 my-lg-0"> <input class="form-control mr-sm-2" placeholder="Search" type="text"> <button class="btn btn-secondary my-2 my-sm-0" type="submit">Search</button> </form> </div> </nav> 

The problem is in the very thing you mentioned you changed; 问题在于您所说的事情已经改变了。 the Bootstrap and jQuery files. Bootstrap和jQuery文件。 You're using the jQuery from Bootstrap 3.3.7, and the CSS from Bootstrap 4, which have conflicts. 您正在使用Bootstrap 3.3.7中的jQuery和Bootstrap 4中的CSS,它们之间存在冲突。 Also note that Bootstrap 4 additionally needs Popper.js . 另请注意,Bootstrap 4还需要Popper.js

Changing both Bootstrap files to use Bootstrap 4 (and including Popper) fixes this problem: 更改两个Bootstrap文件以使用Bootstrap 4(包括Popper)可解决此问题:

 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.6/umd/popper.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js"></script> <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> <a class="navbar-brand" href="#">Navbar</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarColor02" aria-controls="navbarColor02" aria-expanded="false" aria-label="Toggle navigation" style=""> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarColor02"> <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="#">Features</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Pricing</a> </li> <li class="nav-item"> <a class="nav-link" href="#">About</a> </li> </ul> <form class="form-inline my-2 my-lg-0"> <input class="form-control mr-sm-2" placeholder="Search" type="text"> <button class="btn btn-secondary my-2 my-sm-0" type="submit">Search</button> </form> </div> </nav> 

Hope this helps! 希望这可以帮助! :) :)

That is because bootswatch is using bootstrap 4.0 beta rather than 3 .and for bootstrap4 you will need popper.js 这是因为bootswatch使用的是bootstrap 4.0 beta而不是3对于bootstrap4您将需要popper.js

see the demo below 请参阅下面的演示

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.13.0/umd/popper.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js"></script> <nav class="navbar navbar-expand-lg navbar-dark bg-primary"> <a class="navbar-brand" href="#">Navbar</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarColor01" aria-controls="navbarColor01" aria-expanded="false" aria-label="Toggle navigation" style=""> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarColor01"> <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="#">Features</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Pricing</a> </li> <li class="nav-item"> <a class="nav-link" href="#">About</a> </li> </ul> <form class="form-inline my-2 my-lg-0"> <input class="form-control mr-sm-2" type="text" placeholder="Search"> <button class="btn btn-secondary my-2 my-sm-0" type="submit">Search</button> </form> </div> </nav> 


EDIT 编辑

While trying to include popper.js keep in mind to use only the umd specific directory, not esm or any other. 在尝试包含popper.js请记住仅使用umd特定目录,而不使用esm或其他任何目录。 See this previous issue for details 有关详细信息,请参见上一

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM