【问题标题】:Dropdown button don't expand下拉按钮不展开
【发布时间】:2019-08-04 23:23:30
【问题描述】:

我试图使用引导程序通过数据属性制作下拉按钮,但是当我点击按钮时没有任何反应。

我遵循官方文档,甚至直接复制示例但按钮没有打开菜单。有测试页面:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"
          integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    <link href="/static/the_elder_commands/base.css" rel="stylesheet">
    <title>Title</title>
</head>
<body>
<div class="btn-group dropright">
        <button class="btn btn-dark dropdown-toggle" type="button" id="id_something"
                data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
            Template
        </button>
        <div class="dropdown-menu" aria-labelledby="id_something">
             <a class="dropdown-item" href="#">Template</a>
        </div>
</div>

<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"
        integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
        crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
        integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
        crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
</body>
</html>

谁能告诉我缺少什么或我做错了什么?

【问题讨论】:

    标签: html bootstrap-4


    【解决方案1】:

    在 Bootstrap 的官方页面中,他们提到你必须先加载 jquery,然后是 pooper js,最后是他们的 javascript 你输入错误的顺序

    他们的官方例子

    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
    

    如果你打算使用它,我也建议使用缩小版的 jquery(不是 slim)

    【讨论】:

      【解决方案2】:

      根据文档:

      jQuery must come first, then Popper.js, and then our JavaScript plugins.

      所以你所要做的就是改变你的script标签的顺序。 像这样:

      <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
      
      1. jQuery,
      2. Popper.js,
      3. Bootstrap.js

      这应该可以解决问题

      【讨论】:

        【解决方案3】:

        您以错误的顺序将脚本链接到您的项目中,让我们解决这个问题:

        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
            <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"
                  integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
            <link href="/static/the_elder_commands/base.css" rel="stylesheet">
            <title>Title</title>
        </head>
        <body>
        <div class="btn-group dropright">
                <button class="btn btn-dark dropdown-toggle" type="button" id="id_something"
                        data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                    Template
                </button>
                <div class="dropdown-menu" aria-labelledby="id_something">
                     <a class="dropdown-item" href="#">Template</a>
                </div>
        </div>
        
        <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"
                integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
                crossorigin="anonymous"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
                integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
                crossorigin="anonymous"></script>
        </body>
        </html>
        

        你可以在这里测试它:https://jsfiddle.net/26u0bax5/

        【讨论】:

          猜你喜欢
          • 2021-09-17
          • 1970-01-01
          • 2021-10-12
          • 1970-01-01
          • 1970-01-01
          • 2018-07-26
          • 2020-01-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多