【发布时间】:2023-03-10 07:27:02
【问题描述】:
我正在尝试让引导下拉菜单工作,引导显示正确但下拉操作不起作用,我怀疑它与 jquery 有关,但 jquery 工作正常。
./Gemfile
gem "bootstrap", "~> 4.4"
gem "jquery-rails", "~> 4.3"
./app/assets/stylesheets/application.scss
@import "bootstrap";
./app/javascript/packs/application.js
//= require bootstrap-sprockets
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require turbolinks
//= require_tree .
在我的浏览器控制台调用
$('.dropdown-toggle')
工作得很好,但是在调用时
$('.dropdown-toggle').dropdown()
说Uncaught TypeError: $(...).dropdown is not a function at <anonymous>:1:23
这是从Bootstrap's navbar example复制的html
<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="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavDropdown">
<ul class="navbar-nav">
<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 dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown link
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
<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>
</li>
</ul>
</div>
</nav>
编辑:
Popper.js 已正确包含,我已通过删除手动导入对此进行了测试,我认为问题在于包含 jquery 和 bootstrap 时,因为一旦我删除其中一个手动导入,下拉菜单就会中断(不更改视图)
【问题讨论】:
-
可以分享一下html吗?
-
@Seyon 刚刚添加
-
当您尝试通过 script src 命令在您的 html 中显式包含 javascripts 时(请参阅顶部部分:getbootstrap.com/docs/4.4/getting-started/introduction)是否有效?
-
@Seyon 它按预期工作,那些javascript不是添加到application.js上吗?
-
尝试在您的 application.js 中引导之前定义 jquery
标签: jquery ruby-on-rails bootstrap-4