导航栏下拉菜单(折叠)在引导程序5中不起作用



我在尝试用Bootstrap 5创建响应菜单或下拉按钮时遇到了一个问题。一切似乎都很好。导航图标&下拉图标出现。但它不起作用。当我单击nav图标或dropdown按钮时,不会出现dropdown menu

我想特别提到的是,我还包括了jquery文件。但它没有起作用。有人能告诉我这里发生了什么事吗?

最后一件事是,我在使用其他bootstrap类(如mr-automl-auto等(时遇到了严重的问题。对于这种工作,bootstrap 5是否有任何bug或新类?

这是我的代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Bootstrap</title>
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1"
crossorigin="anonymous"
/>
</head>
<body>
<nav class="navbar navbar-dark bg-dark navbar-expand-md">
<a href="#" class="navbar-brand">DemoTech</a>
<button
class="navbar-toggler"
data-toggle="collapse"
data-target="#navbar"
>
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse" id="navbar" navbar>
<ul class="navbar-nav">
<li class="nav-item"><a href="#" class="nav-link">Home</a></li>
<li class="nav-item"><a href="#" class="nav-link">About</a></li>
<li class="nav-item"><a href="#" class="nav-link">Contact</a></li>
</ul>
</div>
</nav>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.bundle.min.js"
integrity="sha384-ygbV9kiqUc6oa4msXn9868pTtWMgiQaeYH7/t7LECLbyPA2x65Kgf80OJFdroafW"
crossorigin="anonymous"
></script>
</body>
</html>

引导程序4中使用的data-*属性已被引导程序5中的data-bs-*替换

<button class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#navbar">
<span class="navbar-toggler-icon"></span>
</button>

演示

正如文档中所解释的,所有JavaScript插件的数据属性现在都是按名称命名的,以帮助区分Bootstrap功能与第三方和您自己的代码。这意味着任何javascript组件(Collapse、Navbar、Carousel、Dropdown、Tabs、Modal等(都只能使用data-bs-...属性。

Bootstrap 5是一个重大更新,具有突破性的更改。还可以看到,ml-auto/mr-auto已更改为ms-auto/me-auto

确保您已在head标签中添加了Javascript和CSS引导主页中的jsDeliver CDN链接。

**<!-- CSS only -->**
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-uWxY/CJNBR+1zjPWmfnSnVxwRheevXITnMqoEIeG1LJrdI0GlVs/9cVSyPYXdcSF" crossorigin="anonymous">
**<!-- JavaScript Bundle with Popper -->**
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-kQtW33rZJAHjgefvhyyzcGF3C5TFyBQBA13V1RKPf4uH+bwyzQxZ6CmMZHmNBEfJ" crossorigin="anonymous"></script>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="true" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>

您已经使用了data-toggle,这个属性在旧的Bootstrap版本中使用,而在Bootstrap 5中,您需要使用这个属性data-bs-toggle,另一件最重要的事情是您已经制作了(aria-expanded="true"(。

我也面临着同样的问题,首先我将数据目标更改为数据bs目标,将数据切换更改为数据bstoggle第二我包含了bootstrap.bundle.min.js和普通bootstrap.min.js的cdn链接添加了两个相同的脚本导致问题

`

<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>

<div id="navbarSupportedContent" class="collapse navbar-collapse" >
<ul class="navbar-nav me-auto">
<li class="nav-item active">
<a class="nav-link" href=@Url.Action("Index","Home")>Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href=@Url.Action("AboutUs","Home")>About Us</a>
</li>
<li class="nav-item">
<a class="nav-link" href=@Url.Action("OurTeam","Home")>Our Team</a>
</li>
@*<li class="nav-item">
<a class="nav-link" href=@Url.Action("Blog","Home")>Blog</a>
</li>*@
<li class="nav-item">
<a class="nav-link" href=@Url.Action("ContactUs","Home")>Contact Us</a>
</li>
@*<li class="nav-item">
<a class="nav-link" href=@Url.Action("LoanCalculator","Home")>Loan Calculator</a>
</li>*@
</ul>
</div>


</nav>`

对我来说,只需通过在数据目标和数据切换中添加-bs来解决这个问题

<button
className="navbar-toggler"
type="button"
data-bs-toggle="collapse"
data-bs-target="#navbarNavDropdown"
aria-controls="navbarNavDropdown"
aria-expanded="false"
aria-label="Toggle navigation"
>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Bootstrap</title>
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1"
crossorigin="anonymous"
/>
</head>
<body>
<nav class="navbar navbar-dark bg-dark navbar-expand-md">
<a href="#" class="navbar-brand">DemoTech</a>
<button
class="navbar-toggler"
**data-bs-toggle="collapse"
data-bs-target="#navbar"**
>
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse" id="navbar" navbar>
<ul class="navbar-nav">
<li class="nav-item"><a href="#" class="nav-link">Home</a></li>
<li class="nav-item"><a href="#" class="nav-link">About</a></li>
<li class="nav-item"><a href="#" class="nav-link">Contact</a></li>
</ul>
</div>
</nav>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.bundle.min.js"
integrity="sha384-ygbV9kiqUc6oa4msXn9868pTtWMgiQaeYH7/t7LECLbyPA2x65Kgf80OJFdroafW"
crossorigin="anonymous"
></script>
</body>
</html>

除了在主体中包含JS链接外,按钮和div还具有相同的aria控制/数据bs目标和ID:

<button class="navbar-toggler" type="button" data-bs-toggle="collapse" aria-controls='navbarSupportedContent'

<div class="collapse navbar-collapse" id="navbarSupportedContent">

<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<title>Hello, world!</title>
</head>
<body>

<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Navbar w/ text</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarText">
<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>
</ul>
<span class="navbar-text">
Navbar text with an inline element
</span>
</div>
</nav>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</body>
</html>

您使用"数据切换";Bootstrap 3中使用的这个属性需要使用这个属性";数据bs切换";

我在编辑当前网站时遇到下拉菜单问题。今晚,我终于有了一个带有下拉菜单的导航菜单,可以在点击链接后关闭下拉菜单!我通过一个不同的模板把它设计成了呼呼的样子。然而,当我将菜单添加到我正在编辑的网站时,移动切换菜单Is;t打开。我该怎么解决?谢谢!:--(

<!-- ======= Header ======= -->
<header id="header" class="fixed-top d-flex align-items-center">
<div class="container">
<div class="header-container d-flex align-items-center justify-content-between">

<div class="logo">

<!--<h1 class="text-light"><a href="index.html">LOGO TEXT</a></h1>-->

<!-- Uncomment below if you prefer to use an image logo -->

<a class="scrollto" href="#intro"><img src="img/UCF-Logo.svg" height="50" alt="U C F" title="U C F" class="img-fluid top-logo wow bounceOut"></a>

<!-- <a href="index.html"><img src="assets/img/logo.png" alt="" class="img-fluid"></a>-->
</div>
<nav id="navbar" class="navbar">

<ul>


<!--<li><a class="nav-link scrollto active" href="#hero">Home</a></li>
<li><a class="nav-link scrollto" href="#about">About</a></li>
<li><a class="nav-link scrollto" href="#services">Services</a></li>
<li><a class="nav-link scrollto " href="#portfolio">Portfolio</a></li>
<li><a class="nav-link scrollto" href="#team">Team</a></li>-->


<li class="dropdown"><a href="#"><span>About <i class="fas fa-arrow-down"></i></span></a>
<ul>
<li><a class="scrollto" href="#about">About</a></li>

<li><a class="scrollto" href="#more-about">Detailed Info</a></li>

<li><a class="scrollto" href="#about">DropDown 03</a></li>

<li><a class="scrollto" href="#about">DropDown 04</a></li>

<li><a class="scrollto" href="#about">DropDown 05</a></li>

</ul>
</li>


<li class="dropdown"><a href="#"><span>DropDown <i class="fas fa-arrow-down"></i></span></a>
<ul>
<li><a class="scrollto" href="#about">DropDown 06</a></li>

<li><a class="scrollto" href="#about">DropDown 07</a></li>

<li><a class="scrollto" href="#about">DropDown 08</a></li>

<li><a class="scrollto" href="#about">DropDown 09</a></li>

<li><a class="scrollto" href="#about">DropDown 10</a></li>

</ul>
</li>


<li class="dropdown"><a href="#"><span>DropDown <i class="fas fa-arrow-down"></i></span></a>
<ul>
<li><a class="scrollto" href="#contact">Contact Info</a></li>

<li><a class="scrollto" href="#about">DropDown 12</a></li>

<li><a class="scrollto" href="#about">DropDown 13</a></li>

<li><a class="scrollto" href="#about">DropDown 14</a></li>

<li><a class="scrollto" href="#about">DropDown 15</a></li>

</ul>
</li>


<!--<li><a href="#">Drop Down 2</a></li>
<li><a href="#">Drop Down 3</a></li>
<li><a href="#">Drop Down 4</a></li>
</ul>
</li>-->


<!--<li><a class="nav-link scrollto" href="#contact">Contact</a></li>-->


<li><a class="register scrollto" href="#about">REGISTER! <i class="fas fa-smile-beam fa-x2"></i></a></li>
</ul>

<i class="fas fa-bars mobile-nav-toggle"></i>

</nav><!-- .navbar -->
</div><!-- End Header Container -->
</div>
</header><!-- End Header -->

此处为"数据bs目标"id

<button class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#kickMyAss">

和div id必须是相同的

<div id="kickMyAss" class="collapse navbar-collapse">

最新更新