Bootstrap 下拉菜单不起作用

IT技术 javascript jquery html css twitter-bootstrap
2021-03-22 15:23:58

我无法让我的下拉菜单正常工作。我可以让导航栏完美显示,但是当我点击“下拉菜单”(其中一个)时,它不会显示下拉菜单。我曾尝试查看有关此问题的其他帖子,但没有任何解决每个人问题的方法有帮助。我直接从 bootstrap 的网站复制了源代码,但似乎无法在我的机器上运行。有人有想法么?我已经盯着它看了一个小时,似乎无法弄清楚问题是什么。

<head>
<script src="resource/js/jquery-1.11.0.js"></script>
<script src="resources/js/bootstrap.js"></script>

<script type="text/javascript">
$(document).ready(function() {
    $('dropdown-toggle').dropdown()
});
</script>
</head>
<body>
<nav class="navbar navbar-default" role="navigation">
  <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-    target="#bs-example-navbar-collapse-1">
    <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="#">Brand</a>
</div>

<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
  <ul class="nav navbar-nav">
    <li class="active"><a href="#">Link</a></li>
    <li><a href="#">Link</a></li>
    <li class="dropdown">
      <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
      <ul class="dropdown-menu" role="menu">
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
        <li class="divider"></li>
        <li><a href="#">Separated link</a></li>
        <li class="divider"></li>
        <li><a href="#">One more separated link</a></li>
      </ul>
    </li>
  </ul>
  <form class="navbar-form navbar-left" >
    <div class="form-group">
      <input type="text" class="form-control" placeholder="Search">
    </div>
    <button type="submit" class="btn btn-default">Submit</button>
  </form>
  <ul class="nav navbar-nav navbar-right">
    <li><a href="#">Link</a></li>
    <li class="dropdown">
      <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
      <ul class="dropdown-menu">
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
        <li class="divider"></li>
        <li><a href="#">Separated link</a></li>
      </ul>
    </li>
  </ul>
</div><!-- /.navbar-collapse -->

6个回答

也许试试

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

看看它是否会起作用。

我的问题是我的 bootstrap.css 放在正确的位置,但我的包中没有包含 bootstrap.min.js
2021-04-22 15:23:58
这做到了。本地文件不起作用的任何原因?如果我将其部署在域上,这些 js 源是否正确?只是想确保我的应用程序在我完成并发布后仍然有效。(这是我的第一个,所以这就是我问的原因)
2021-05-08 15:23:58
我意识到这些代码行的顺序也很重要。如果您将 google apis 作为最后一行代码,则它不起作用。
2021-05-11 15:23:58
@ user2540528 可能该文件当时的名称不同,jquery-1.11.0.js或者根本不存在。
2021-05-12 15:23:58
user2540528 你似乎错过了 bootstrap.css
2021-05-21 15:23:58

我有一个 bootstrap + rails 项目,下拉菜单工作正常。他们在更新后停止工作......

这是解决问题的解决方案,将以下内容添加到 .js 文件中:

$(document).ready(function() {
    $(".dropdown-toggle").dropdown();
});
这个解决方案对我有用。事实证明,我在我的网站上导入了两次引导程序,在我只导入一次之后,它开始工作而没有在此解决方案中进行修复。
2021-05-01 15:23:58
带有 Spud CMS 的 Grails 项目 - 这解决了我的下拉切换问题。
2021-05-05 15:23:58
解决了我在 Bootstrap 3 和 Rails 4.2 中遇到的一个问题,其中下拉菜单仅在第一次工作时有效,但在第二次单击时无效。
2021-05-06 15:23:58
非常感谢您 1. 每个人都说“在引导程序之前添加 jquery”。但就是这样。这是他们唯一的答案,经过一个多小时的查找,有效!
2021-05-08 15:23:58
这对我帮助很大。知道为什么需要此修复程序吗?
2021-05-12 15:23:58

100% 工作解决方案

只需将您的 Jquery 链接放在所有 js 和 css 链接中

示例正确

<script src="jquery/jquery.js"></script>
<script type="text/javascript" src='js/bootstrap.min.js'></script>
<link rel="stylesheet" href="css/bootstrap.css" />

例子错了!

<script type="text/javascript" src='js/bootstrap.min.js'></script>
<link rel="stylesheet" href="css/bootstrap.css" />
<script src="jquery/jquery.js"></script>
诺佩。这是我对“init.jsp”文件的命令(之后加载 css) <script src="webjars/jquery/3.6.0/jquery.min.js" ></script> <script src="webjars/popper .js/2.9.3/umd/popper.min.js" ></script> <script src="webjars/font-awesome/5.15.3/js/all.js"></script> <script src= "webjars/bootstrap/5.1.0/js/bootstrap.min.js" ></script>
2021-04-28 15:23:58
@toddmo 它有效,只需检查是否从 google crome dbugger 的网络选项卡中正确加载了 jquery、bootstrap 和 css
2021-05-09 15:23:58
在我的情况下不起作用。不得不使用 Iwan B. 的解决方案。
2021-05-13 15:23:58
@Nabin 它有效是因为,我们必须先加载 jquery,然后引导程序,因为引导程序使用 jquery
2021-05-16 15:23:58

将 jquery js 链接放在 bootstrap js 链接之前,如下所示:

<script type="text/javascript" src="Scripts/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="Scripts/bootstrap.min.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>
Put the jquery css ... > Put the jquery js ...
2021-05-08 15:23:58
你的话是对的,但代码块与你所说的相反。
2021-05-21 15:23:58

根据 getBootstrap.com(第 4 版),下拉列表是基于第三方库 Popper.js 构建的。因此,如果下拉菜单在单击时不起作用,但仅在下拉菜单悬停时起作用,则包括 popper.js、bootstrap.js 和 bootstrap.css。在包含引导程序包之前不包含 popper.js 可能是原因之一。

<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css"></link>

https://getbootstrap.com/docs/4.0/components/dropdowns/

这是对我有用的那个。从 Bootstrap 页面复制了相同的代码,但这是它们应该采用的正确顺序。
2021-04-22 15:23:58
对于版本 4,这是一个很大的变化,当我们习惯于在我们的项目中只包含 Jquery 和 bootstrap 时,这是一个很大的变化。
2021-04-26 15:23:58
是的,顺序真的很重要。
2021-05-08 15:23:58