Bootstrap 5导航栏下拉菜单点击无反应,求助故障排查
问题排查与解决方案
你的下拉菜单失效核心是Bootstrap JS脚本重复引入导致冲突,同时还有几处小问题需要修正:
核心问题:重复加载脚本
Bootstrap 5的bootstrap.bundle.min.js已经内置了Popper.js和Bootstrap核心JS逻辑,你后续又单独引入popper.min.js和bootstrap.min.js,这会引发JS变量冲突,直接导致下拉组件无法正常初始化。
次要问题
- 下拉按钮的
data-bs-toggle="dropdown"属性重复写了两次,属于冗余代码; - 导航栏仅用
navbar-expand类缺少响应式断点(比如navbar-expand-lg),小屏幕下导航项无法正常折叠; - 下拉菜单里的「Log Out」链接误用了
nav-link类,应该统一用dropdown-item保证样式一致。
修正后的完整代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous"> </head> <body> <nav class="navbar navbar-expand-lg" style="background-color: #e6e2c2;"> <div class="container-fluid"> <a class="navbar-brand" href="#"> <img src="{% static 'potbs/potbs.png' %}" alt="Logo" width="50" height="30" class="d-inline-block align-text-top"> Pat on the Back Studios. </a> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav me-auto mb-2 mb-lg-0"> {% if user.is_authenticated %} <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-expanded="false"> Profile </a> <ul class="dropdown-menu"> <li><a class="dropdown-item" href="#">Profile</a></li> <li><a class="dropdown-item" href="#">Earned Badges</a></li> <li><hr class="dropdown-divider"></li> <li><a class="dropdown-item" href="{% url 'logout' %}">Log Out</a></li> </ul> </li> {% else %} <li class="nav-item"> <a class="nav-link" href="{% url 'login' %}">Log In</a> </li> <li class="nav-item"> <a class="nav-link" href="{% url 'register' %}">Register</a></li> {% endif %} </ul> </div> </div> </nav> <!-- 仅保留包含Popper的bundle版本JS即可 --> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-kenU1KFdBIe4zVF0s0G1M5b4hcpxyD9F7jL+jjXkk+Q2h455rYXK/7HAuoJl+0I4" crossorigin="anonymous"></script> </body> </html>
额外说明
- 移除重复的JS引入后,Bootstrap下拉组件会自动完成初始化,点击按钮即可正常展开/收起;
navbar-expand-lg搭配collapse navbar-collapse,能让导航栏在大屏横向展开、小屏自动折叠(如需汉堡按钮可自行补充)。
内容的提问来源于stack exchange,提问作者user17470872
相关产品推荐
相关产品推荐

