Bootstrap dropdown not working

我不能让自举下降到工作。 这是我的导航 html:

<ul class='nav'>
<li class='active'>Home</li>
<li class='dropdown'>
<a class="dropdown-toggle" data-toggle="dropdown" href='#'>Personal asset loans</a>
<ul class="dropdown-menu" role="menu">
<li><a href="#">asds</a></li>
<li class="divider"></li>
</ul>
</li>
<li>Payday loans</li>
<li>About</li>
<li>Contact</li>
</ul>

And here are the scripts:

<script type="text/javascript" src="js/bootstrap/bootstrap-dropdown.js"></script>
<script>
$(document).ready(function(){
$('.dropdown-toggle').dropdown()
});
</script>

我做错了什么? 谢谢你的回答!

467677 次浏览

Have you included jquery.js ?

此外,将这行代码与您的代码进行比较:

<a class="dropdown-toggle" data-toggle="dropdown" href="#">Personal asset loans<b class="caret"></b></a>

看看这个版本的工作 OK。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Bootstrap dropdown</title>
<link href="css/bootstrap.css" rel="stylesheet" type="text/css" />


</head>
<body>
<div class="navbar">
<div class="navbar-inner">
<div class="container">
<ul class="nav">
<a class="brand" href="#">w3resource</a>
<li class="active"><a href="#">Home</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
<li class="dropdown" id="accountmenu">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Tutorials<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">PHP</a></li>
<li><a href="#">MySQL</a></li>
<li class="divider"></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">HTML5</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<div class="container-fluid">
<h1>Dropdown Example</h1>
</div>
<script type="text/javascript" src="js/jquery-latest.js"></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('.dropdown-toggle').dropdown();
});
</script>
</body>
</html>

工作演示: http://codebins.com/bin/4ldqp73

试试这个

<ul class='nav'>
<li class='active'>Home</li>
<li>
<div class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Personal asset loans</a>
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
<li><a href="#">asds</a></li>
<li class="divider"></li>
</ul>
</div>
</li>
<li>Payday loans</li>
<li>About</li>
<li>Contact</li>
</ul>

提示: 如果你有 bootstrap.js,你应该在 没有中添加 bootstrap-drop down. js。

我不确定 bootstrap.min.js 的结果。

对于您的样式,您需要包含引导程序的 css 文件,通常就在 </head>元素之前

<link href="css/bootstrap.css" rel="stylesheet">

Next you'll need to include the js files, it's recommended to include them at the end of the document, generally before the </body> so pages load faster.

<script src="js/jquery.js"></script>
<script src="js/bootstrap.js"></script>

我也遇到过同样的问题,几个小时的故障拍摄后发现,

是的

<script type="text/javascript" src="Scripts/bootstrap.min.js"></script>
<script type="text/javascript" src="Scripts/jquery-2.1.1.min.js"></script>

而不是,

<script type="text/javascript" src="Scripts/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="Scripts/bootstrap.min.js"></script>

希望这对谁有帮助

您必须将这些文件导入到您的 html 的 <head></head>中。

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>

我有同样的问题,当我包括 bootstrap.min.js两次。删除其中之一,它开始工作。

Add following lines within the body tags.

<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://code.jquery.com/jquery.js"></script>
<!-- Include all compiled plugins (below), or include individual files
as needed -->
<script src="js/bootstrap.min.js"></script>

我也是因为同样的问题才来到这里。

我的问题: 我使用推荐的 jquery 1.12.0版本作为我的 jquery 脚本文件。

Solution : replaced the jquery script with jquery 2.2.0 version.

这就解决了我的问题。

在头部试试这个

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">

你必须检查互相冲突的 css 文件/属性,例如你可以有”。其他地方的“ nav”自定义样式内容尝试禁用自己的 css 文件,并检查是否有效,然后检查哪个文件或自定义样式造成了冲突 还要确保在代码中包含 bootstrap.min.js

我所做的是... ..。

只要从我的项目中删除 bootstrap.min.js 并添加 bootstrap.js,它就开始工作了... ..。

bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
"~/Scripts/bootstrap.js"
//"~/Scripts/bootstrap.min.js"));

必须包括 bootstrap 和 jquery:

<link type="text/css" href="/{ProjectName}/css/ui-lightness/jquery-ui-1.8.18.custom.css" rel="stylesheet" />
<script type="text/javascript" src="/{ProjectName}/js/jquery-x.x.x.custom.min.js"></script>


<link type="text/css" href="/{ProjectName}/css/bootstrap.css" rel="stylesheet" />
<script type="text/javascript" src="/{ProjectName}/js/bootstrap.js"></script>

注意: jquery-x.x.x. min.js version 必须是版本2.x. x! ! !

I figured it out and the simplest way to do this ist just copy and past the CDN of bootstrap link that can be found in https://www.bootstrapcdn.com/ and the Jquery CDN Scripts that can be found here https://code.jquery.com/ and after you copy the links, the bootstrap links paste on the head of HTML and the Jquery Script paste in body of HTML like the example below:

    <!DOCTYPE html>
<html>
<head>


<title>Purrfect Match Landing Page</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<!--<link rel="stylesheet" href="griddemo.css">


<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css">
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">


</head>


<body>


<!-- Latest compiled and minified JavaScript -->
<script src="https://code.jquery.com/jquery-3.1.1.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js">      </script>
</body>
</html>

对我来说,这是完美的工作,希望它也适合你:)

For me, it was a CORS issue. I removed crossorigin="anonymous" from my script importing tags, and it started working again.

顺便说一句,最新的脚本标签,在正确的顺序,总是可以在这里找到: https://getbootstrap.com/

编辑: 显然,将 defer添加到 script标签也将打破所有的 Bootstrap 好处。

Copy/paste the CSS link followed by the JS link from the bootstrap site 给你. Then the dropdown should work.

我的主页看起来像:

<html>
<head>
<meta charset="utf-8">
<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">
<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>


<title>Website Title</title>
</head>
<body>
<div id="content" />
<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>
</body>
</html>

(Navbar from 给你)

我有一个类似的问题,只是注意到我已经添加了引导脚本 两次,第二个引导脚本是在 以上之后的 jquery 脚本。

解决方案:

  • 确保 bootstrap.min.js 和 jquery.min.js 只包含在文件中一次。
  • Jquery.min.js 之后应该包含 bootstrap.min.js 脚本

Try this code:

<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Bootstrap Tutorial</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
</head>
<body>
<h1>Welcome to Bootstrap</h1>
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown button
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>




<script src="https://code.jquery.com/jquery.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</body>
</html>

我用 Angular 7,jQuery 3.4.1,Popper 1.12.9和 Bootstrap 4.3.1进行了设置,直到我做了这个样式的小黑客:

.dropdown.show .dropdown-menu {
opacity: 1 !important;
}

HTML 看起来像这样:

<nav class="navbar navbar-expand-lg navbar-dark fixed-top py-1">
<div class="container-fluid">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" id="dropdown-id"
aria-expanded="false">Menu</button>
<div class="dropdown-menu" aria-labelledby="dropdown-id">
<a class="dropdown-item" [routerLink]='["/"]'>Main page</a>
<a class="dropdown-item" [routerLink]='["/about"]'>About</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" [routerLink]='["/about/terms"]'>Terms</a>
<a class="dropdown-item" [routerLink]='["/about/privacy"]'>Privacy</a>
</div>
</li>
</ul>
</div>
</nav>

检查 popper.js 库,因为我遇到了同样的问题,你可以在 < a href = “ https://getbootstrap.com/”rel = “ nofollow norefrer”> https://getbootstrap.com/找到 bootstrap、 jquery 和 popper CDN 或者只是复制下面的脚本标签

对于最新的引导,你将需要 Popper.js

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>


<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>

复制 <body>标签前面的 Body 部分的 End 中的链接,在 <Head>标签内。

将 jQuery<script>和样式表 <link>下面的内容复制粘贴到 <head>中,以确保加载了所有必要的文件。

JQuery.js文件位于 .css样式表之上非常重要

只需粘贴以下行以进行测试

<script src="//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">

问题主要发生在加载 jQuery 脚本时,请确保 正确添加引用。

现在测试

如果它仍然不工作,检查引导网站,他们有一个样本实现。

Https://getbootstrap.com/docs/4.3/components/navbar/#supported-content

当我混淆了 css 和 bootstrap 版本时,我的(同样的)问题出现了。 我使用的是版本3 bootstrap.min.js 和版本4.5 bootstrap.min.css

如果您最近已经加载或覆盖了大量的 css 和 js 文件到您的静态文件夹,那么这将是一个很好的起点。

Good luck.

我只是增加了 bootstrapJS部分到我的索引页面,然后它工作

如果您正在使用 bootstrap 的最新版本(01.12.2020) < br > ,请粘贴此文件

<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>

对我来说,最初的问题就是答案。在 引导文档页上没有提到使用脚本来启用下拉列表,但是它似乎是必要的,至少在我的情况下。

一旦我添加了这个脚本从原来的问题,它神奇地开始工作。

<script>
$(document).ready(function(){
$('.dropdown-toggle').dropdown()
});
</script>

编辑: 根本原因是与我的父导航容器的格式有关,我吹走了我的整个导航部分,代之以 bootstraps 示例,它开始在没有脚本的情况下工作。因此,两种解决方案都有效,但对我来说,把它吹走似乎是“正确”的方式,因为剧本感觉像是一个骗局。

我在使用角度12和引导5时遇到了这个问题。我的问题是,我错误地将一个 CSS 文件放入了脚本部分:

        "styles": [
"node_modules/angular-calendar/css/angular-calendar.css",
"node_modules/bootstrap/dist/css/bootstrap.min.css",
"node_modules/bootstrap-icons/font/bootstrap-icons.css",
"node_modules/sweetalert2/src/sweetalert2.scss",
"src/styles.css"
],
"scripts": [
"node_modules/bootstrap/dist/js/bootstrap.bundle.min.js",
"node_modules/sweetalert2/src/sweetalert2.scss"  <===== in wrong section
]

这个应用程序构建正常,在浏览器控制台中没有显示错误,但是下拉开关什么也没有做。

在引导程序5中,需要从 data-toggle='dropdown'更改为 data-bs-toggle='dropdown'

如果你正面临一个下拉菜单的问题,也许这有助于你摆脱它

第一步: 引导带下载页

Step 2: Jump over to this *"CDN via jsDelivr"*Copy and Paste CDN into the Web-Head tag

or

否则,只需复制下面的代码并将其粘贴到 head 标记中,就可以了。

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>

我希望这能帮到你。 问候, 艾哈迈德 · 伊克巴尔 · 巴蒂

我的问题是,我使用的是 bootstrap v3.1.1,它不包括 .dropdown-item的样式,尽管有 .dropdown-menu的样式。引导5号两者都有。

如果有人在 angular中与这个问题作斗争。然后这里有一个快速的方法来解决这个问题。

不需要安装 popperjquery相对于 npm,只需在 head tag内的 index.html文件中粘贴以下行

  <!-- BootStrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<!-- JQuery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<!-- Popper -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<!-- BootStrap JS -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>

完整工作代码:

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Some Website</title>
<base href="./">
<meta name="viewport" content="width=device-width, initial-scale=1">
  

<!-- BootStrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<!-- JQuery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<!-- Popper -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<!-- BootStrap JS -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>


</head>
<body>
<div class="dropdown show">
<a class="btn btn-primary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown link
</a>


<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
</body>
</html>