Javascript 烧瓶-引导导航栏下拉菜单不';不要在子页面上工作

Javascript 烧瓶-引导导航栏下拉菜单不';不要在子页面上工作,javascript,html,twitter-bootstrap,flask,bootstrap-4,Javascript,Html,Twitter Bootstrap,Flask,Bootstrap 4,我在base.html中有一个带下拉链接的工作导航栏。该下拉列表将适用于任何页面,但某些子页面下的页面除外 作品: 索引/ 仪表板/ 用户/用户123/ 不起作用(单击“下拉菜单”不起任何作用): 项目/项目a/项目1 导航条码: <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="

我在base.html中有一个带下拉链接的工作导航栏。该下拉列表将适用于任何页面,但某些子页面下的页面除外

作品:

  • 索引/
  • 仪表板/
  • 用户/用户123/
不起作用(单击“下拉菜单”不起任何作用):

  • 项目/项目a/项目1
导航条码:

  <li class="nav-item dropdown">
    <a class="nav-link dropdown-toggle" href="#" id="myDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
     Dropdown Menu
    </a>
    <div class="dropdown-menu" aria-labelledby="myDropdown">
      <a class="dropdown-item" href="{{ url_for('main_bp.option_1_page') }}">Option 1</a>
      <a class="dropdown-item" href="{{ url_for('main_bp.option_2_page') }}">Option 2</a>
    </div>
  </li>
  • 有几个发布的问题似乎有相同的问题,但没有解决这个问题。我尝试过的事情:

    • 已验证引导正在相关子页面上呈现(检查>网络>js)
    • 删除我的导航条形码中的href=“#”
    • 确认当鼠标悬停在“下拉菜单”导航栏链接上时,所有页面上的url都是相同的

    我在整个代码中使用
    url\u作为
    模式,所以我的直觉是这不是路径问题(尽管我想可能是)。它看起来像是在项目中添加bootstrap.min.js和popper.min.js库

            ex:
            <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
    
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
    
    ex:
    
    在项目中添加bootstrap.min.js和popper.min.js库

            ex:
            <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
    
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
    
    ex:
    
    这是解决方案:

    • 没有呈现下拉列表的页面中,我在脚本块中调用了两次
      {{{super()}
      。删除其中一个选项将导致下拉菜单正常工作
    • 通过添加额外的
      {{super()}
      调用,我可以在以前的工作页中重现错误
    我对super()有一个基本的了解,但是如果有人能指出为什么两次调用它会产生这种效果,那么听到这个消息会很有趣。

    这就是解决方案:

    • 没有呈现下拉列表的页面中,我在脚本块中调用了两次
      {{{super()}
      。删除其中一个选项将导致下拉菜单正常工作
    • 通过添加额外的
      {{super()}
      调用,我可以在以前的工作页中重现错误

    我对super()有一个基本的了解,但是如果有人能指出为什么两次调用会产生这种效果,我会很感兴趣。

    谢谢,但我已经有了引导,我不确定如果下拉列表已经在其他页面上呈现,为什么我需要popper,但是我已经有了引导,如果下拉列表已经呈现在其他页面上,我不确定为什么我需要popper