【问题标题】:Bootstrap4 dropdown only works in the second clickBootstrap4 下拉菜单仅在第二次单击时有效
【发布时间】:2018-05-23 17:55:21
【问题描述】:

我正在开发一个使用 bootstrap4 的 django 项目,但下拉切换器有点问题。

切换器仅在第二个链接之后切换下拉菜单!

我做错了什么?

这是我的下拉 HTML 代码:

            <li class="nav-item dropdown show">
                <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                    Dropdown Toggler
                </a>
                <div class="dropdown-menu" role="menu" aria-labelledby="navbarDropdown">
                 <a class="dropdown-item">Link 1</a>
                 <a class="dropdown-item">Link 2</a>
                </div>
            </li>

【问题讨论】:

    标签: drop-down-menu bootstrap-4


    【解决方案1】:

    我遇到了同样的问题,然后解决了。我通常是由于引导 js 库的双重导入。 希望能帮到你。

    【讨论】:

    • 是的,这也是我的问题。我使用了 Mix extract vendor,并在那里添加了整个 boostrap.js,而在我的入口点中只挑选了一些 js 组件,而 laravel mix 变得混乱。
    • 继续回答这个问题,我正在使用一个加载自己的 JS 的模板,它还加载了 bootstrap.js 文件,所以不得不删除之前添加的
    • 这是我的问题。我用的是 Laravel,app.js 中已经存在 bootstrap js 文件。
    【解决方案2】:

    您需要使用这样的切换并将data-target 分配给带有它的 id 的下拉菜单

    使用

    data-target="#navbarDropdown"

     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarDropdown" aria-controls="navbarDropdown" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
          </button>
    

    然后将该 id 分配给菜单

            <li class="nav-item dropdown show">
                <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarDropdown" aria-controls="navbarDropdown" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
          </button>
                <div id="navbarDropdown" class="dropdown-menu"  role="menu" aria-labelledby="navbarDropdown">
                 <a class="dropdown-item">Link 1</a>
                 <a class="dropdown-item">Link 2</a>
                </div>
            </li>
    

    【讨论】:

      【解决方案3】:

      我最近遇到了同样的问题,我通过在加载下拉列表后添加 $('.dropdown-toggle').dropdown() 解决了这个问题。希望这可能会有所帮助,而无需从 data-toggle="dropdown" 更改为 data-toggle="collapse"。

      【讨论】:

        【解决方案4】:

        尝试将bootstrap js文件放在bootstrap css之前

        例如:

        1. 首先链接 Bootstrap.min.js 文件。

          <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
         
        1. 然后链接css文件

        &lt;link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"&gt;

        我遇到了同样的问题,在更改了 js 和 css 的位置后,下拉菜单效果很好。希望对你有所帮助。

        【讨论】:

        • 通常你不应该在 &lt;head&gt; 中加载你的脚本,但我会推荐你​​到 this comprehensive answer 以获取现代方法
        【解决方案5】:

        我最近遇到了同样的问题,我通过编写自定义脚本解决了它:

        <div class="filter-dropdown text-right">
          <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Edit</button>
          <div class="dropdown-menu">
             <a class="dropdown-item" href="#">Link 1</a>
             <a class="dropdown-item" href="#">Link 2</a>
             <a class="dropdown-item" href="#">Link 3</a>
          </div>
        </div>
        
        
        
        $(".filter-dropdown").on("click", ".dropdown-toggle", function(e) { 
            e.preventDefault();
            $(this).parent().addClass("show");
            $(this).attr("aria-expanded", "true");
            $(this).next().addClass("show"); 
          });
        

        【讨论】:

          【解决方案6】:

          我遇到了同样的问题,这是因为我两次导入了引导库。删除其中一个后,它运行良好。 希望对你有帮助。

          【讨论】:

            【解决方案7】:

            同意 Iwan B。在 JavaScript 中的 Rails 中,我只留下了 bootstrap.bundle.js。在 Gemfile 添加 gem 'popper_js', '~> 1.14.5',分别在 application.js 我们应该添加 //= 需要弹出器

            【讨论】:

              猜你喜欢
              • 2015-11-25
              • 1970-01-01
              • 1970-01-01
              • 2014-12-26
              • 1970-01-01
              • 2019-12-24
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多