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

使用BS5手风琴组件时点击头部就消失问题排查求助

问题原因

代码核心错误为ID重复冲突:

  • 每一组手风琴的「头部容器ID」和「内容面板ID」完全重复,比如第一组头部<h2>的ID为collapse1,下方内容面板<div>的ID也为collapse1
  • Bootstrap触发折叠时会根据data-bs-target匹配对应ID的元素,ID冲突导致错误将头部元素判定为需要折叠的对象,点击后就会出现头部消失的问题
  • 额外错误:默认展开的第一组手风琴按钮不应该添加collapsed类,会导致初始箭头样式错误

修正后完整代码

<link href="//cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"></script>
<div class="accordion accordion-flush" id="collapseMain">
  <div class="accordion-item">
    <!-- 头部ID改为不重复的heading1 -->
    <h2 class="accordion-header" id="heading1">
      <!-- 移除多余的collapsed类 -->
      <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapse1" aria-expanded="true" aria-controls="collapse1">head1</button>
    </h2>
    <!-- 内容面板ID保持collapse1,aria-labelledby改为对应头部的ID heading1 -->
    <div id="collapse1" class="accordion-collapse collapse show" aria-labelledby="heading1" data-bs-parent="#collapseMain">
      <div class="accordion-body">
        xxx</div>
    </div>
  </div>
  <div class="accordion-item">
    <h2 class="accordion-header" id="heading2">
      <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapse2" aria-expanded="false" aria-controls="collapse2">head2</button>
    </h2>
    <div id="collapse2" class="accordion-collapse collapse" aria-labelledby="heading2" data-bs-parent="#collapseMain">
      <div class="accordion-body">
        xxx</div>
    </div>
  </div>
  <div class="accordion-item">
    <h2 class="accordion-header" id="heading3">
      <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapse3" aria-expanded="false" aria-controls="collapse3">head3</button>
    </h2>
    <div id="collapse3" class="accordion-collapse collapse" aria-labelledby="heading3" data-bs-parent="#collapseMain">
      <div class="accordion-body">
        xxx</div>
    </div>
  </div>
</div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 16:33:01