javascript - 与 bootstrap4 一起使用时,jquery 未定义 popperjs 第 2325 行

标签 javascript jquery twitter-bootstrap bootstrap-4 popper.js

我正在使用 bootstrap 4.0 beta,它需要 popperjs,即 v1.12.5 。 jQuery 版本为 3.2.1,采用 jQuery.noConflict() 模式。这是针对 Shopify 主题的,因此要包含 javascript 文件,它在 Shopify 的 Slate 命令行工具中使用 gulp-include 指令。我的包含文件如下所示:

// =require vendor/jquery-3.2.1.js
// =require vendor/popper.js
// =require vendor/bootstrap.min.js

当我尝试使用 Bootstrap Navbar 下拉菜单切换时,出现控制台错误

未捕获类型错误:无法读取未定义的属性“jquery”

jQuery 在所有非 popper Bootstrap 功能和自定义 jQuery javascript 中都能正常工作。但是,当我在控制台中键入 jquery(带有小写 q)时,它并未定义,但这就是 popperjs 在第 2325 行使用的内容。如果我编辑 popperjs 源代码并将 q 大写,它仍然会引发相同的错误。

最佳答案

有关更多上下文,您收到此错误是因为您尝试使用无效的 HTML 元素作为下拉按钮。我收到此错误是因为我尝试使用 anchor 标记,该标记在 .dropdown-menu div 旁边嵌套了一个按钮

例如 这有效

<button class="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="#">Thing 1</a>
    <a class="dropdown-item" href="#">Thing 2</a>
    <a class="dropdown-item" href="#">Thing 3</a>
  </div>

但这并不

<a class="dropdown">
<button class="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="#">Thing 1</a>
    <a class="dropdown-item" href="#">Thing 2</a>
    <a class="dropdown-item" href="#">Thing 3</a>
  </div>
</a>

关于javascript - 与 bootstrap4 一起使用时,jquery 未定义 popperjs 第 2325 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47355640/

相关文章:

javascript - 使用 Twitter Bootstrap 在悬停时放大图像

jquery - 如何防止 bootstrap typeahead 双重过滤 ajax 调用中的不匹配结果

javascript - Tabulator 是否可以将时间强制为 24 小时?

javascript - Backbone.js 计时器 - 无用的 setInterval 调用

javascript - 如何使用 jQuery/JS 将下拉项设置为选中状态?

javascript - 调整 iframe 的大小以适应多个页面上的内容

html - Bootstrap 3 - 具有不同部分的长格式 - 全角背景

javascript - 如何使用 jquery 为动态创建的文本框添加事件

javascript - 将字符串日期格式 "Mon Jun 01 2015 00:00:00 GMT+0100 (IST)"更改为 "YYYY-MM-DD"

javascript - 在场景中初始化函数的优雅方式