【发布时间】:2018-11-15 00:05:39
【问题描述】:
我在使用 jquery 和 bootstrap 的下拉菜单时遇到问题。这在以前的版本中似乎很常见,我不明白为什么我目前会收到错误。 html如下:
<html>
<nav class="navbar navbar-default navbar-static">
...Collapsible definition for mobile...
<ul class="nav navbar-nav">
<li class="dropdown dropdown-large">
<a href="#" class="dropdown-medium" data-toggle="dropdown">Dropdown 1</a>
<ul class="col-sm-3">
<li class="dropdown-header">Header 1</li>
<li><a href="Page1.aspx">Page1</a></li>
</ul>
</li>
</ul>
</nav>
<script src="Scripts/jquery-3.3.1.js" type="text/javascript/>
<script src="Scripts/bootstrap.js" type="text/javascript/>
</html>
现在我遇到的问题与第一次单击下拉菜单和 href="#" 有关。 jquery 显然试图将其解析为链接或页面?完整的错误如下:
未捕获的错误:语法 VM jquery-3.3.1.js:1541 错误,无法识别 表达式:#
在 Function.Sizzle.error (VM29 jquery-3.1.1.js: 第1541章,2193
在 Function.Sizzle.select (VM29 jquery-3.1.1.js: 2620)
在 Function.Sizzle [as find] (VM29 jquery-3.1.1.js: 845)
at JQuery.fn.init.find (VM29 jquery-3.1.1.js: 2873)
在新 JQuery.fn.init (VM29 jquery-3.1.1.js: 2983)
在 JQuery (VM29 jquery-3.1.1.js: 139)
在 getParent (VM30 bootstrap.js: 298)
...html 锚数据
请注意,我也尝试过使用 Jquery 2.2.4...菜单不显示并且我没有收到错误。我通过安装 jquery 3.3.1 并在该页面上导入 jquery 2.2.4 而不是 3.3.1 版本,使其在本地工作......它在本地工作,但在发布时不起作用。
编辑 从两个脚本导入之间的 umd 文件夹中添加 popper.js,我仍然得到相同的错误
编辑 2 这是我正在使用的自定义 CSS。 https://bootsnipp.com/snippets/featured/large-dropdown-menu 这在本地有效,尽管方式很奇怪。 Nuget 包 JQuery 2.2.4 已安装并保留在 .net 包中,但在页面上的脚本部分使用 3.1.1 版本并且它可以工作。如果我更新到 3.3.1 版本,我会收到该错误。 Bootstrap 版本 3.0.0 和 4.1.1 混合并尝试了不同的组合,但要么完全不起作用,要么收到错误消息。
EDIT3 实时示例 导航部分和 css 是来自答案部分中所述工作 sn-p 的直接副本。 通过 nuget manager 安装的脚本与版本匹配 (页面上 http 的重定向用于占位符。)单击下拉菜单不会产生任何结果...
编辑 4 感谢 fnostro (https://stackoverflow.com/users/1971438) 的谈话和调试...脚本管理器正在加载标签中的负载,并且每个版本都加载了不同的版本。
Nuget 包
jQuery 3.3.1
引导程序 4.1.1
【问题讨论】:
-
你好像错过了链接
popper.js -
我尝试在 jquery 和 bootstrap 之间添加它,但这也不能解决它......
-
您的导航栏似乎没有为 BS 4.1.1 下拉菜单正确标记。见this
标签: jquery twitter-bootstrap nav