You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

移动端Bootstrap下拉菜单点击闭合及激活状态异常问题

问题解决:Bootstrap移动端导航栏下拉菜单闭合与激活状态异常

问题原因分析

  1. 下拉菜单点击闭合主菜单:你在<li class="nav-item dropdown">外层多套了一个<div class="dropdown">,违背了Bootstrap 5导航栏下拉组件的标准结构,导致点击下拉时触发事件冒泡,误触主菜单的折叠关闭逻辑。
  2. 所有项被标记为激活:一是多个nav-link的href重复指向#kvalita,二是错误的DOM结构干扰了Bootstrap的激活状态判断逻辑。

修正方案

1. 移除多余的外层<div class="dropdown">

导航栏中的下拉项必须直接作为<ul class="navbar-nav">的子元素,不需要额外div包裹。

2. 修正重复的href属性

确保每个导航链接的锚点唯一,避免激活状态判断混乱。

修正后的完整代码

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">

<nav class="navbar navbar-expand-lg navbar-light fixed-top py-3" id="mainNav">
  <div class="container px-4 px-lg-5">
    <a class="navbar-brand" href="#page-top"><img src="https://web-derka.cz/formprojekt/assets/img/logo.png" alt="..." height="66"></a>
    <button class="navbar-toggler navbar-toggler-right" type="button" data-bs-toggle="collapse" data-bs-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button>

    <div class="collapse navbar-collapse" id="navbarResponsive">
      <ul class="navbar-nav ms-auto my-2 my-lg-0">
        <li class="nav-item"><a class="nav-link" href="#profil-firmy">O nás</a></li>

        <!-- 移除外层多余的div.dropdown -->
        <li class="nav-item dropdown">
          <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
            Výroba
          </a>
          <ul class="dropdown-menu">
            <li><a class="dropdown-item" href="#">Výrobní program</a></li>
            <li><a class="dropdown-item" href="#">Strojní vybavení</a></li>
            <li><a class="dropdown-item" href="#">Konstrukce a technologie</a></li>
            <li><a class="dropdown-item" href="#">Kvalita</a></li>
          </ul>
        </li>

        <!-- 修正重复的href属性 -->
        <li class="nav-item"><a class="nav-link" href="#reference">Reference</a></li>
        <li class="nav-item"><a class="nav-link" href="#kariera">Kariéra</a></li>
        <li class="nav-item"><a class="nav-link" href="#contact">Kontakt</a></li>
      </ul>
    </div>
  </div>
</nav>

<!-- Bootstrap 5无需单独引入jQuery,bundle包已包含Popper.js -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>

额外说明

  • Bootstrap 5的bootstrap.bundle.min.js已内置Popper.js,无需单独引入jQuery,移除多余的jQuery引入可避免版本冲突。
  • 严格遵循Bootstrap官方文档的DOM结构规范,是避免这类交互异常的核心前提。

内容的提问来源于stack exchange,提问作者Patrik Derka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 04:33:43