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

Bootstrap Collapse手风琴点击后无法自动折叠其余项问题求助

问题原因

  • 手风琴互斥折叠依赖data-bs-parent属性指向父手风琴容器的ID,你代码中渲染折叠项时填写的#accordionExample不存在,实际承载所有手风琴项的容器ID为display,属性值不匹配导致互斥规则失效。
  • 自定义JS引入顺序早于Bootstrap JS,可能导致动态生成的DOM无法正确绑定Bootstrap折叠事件。
  • 代码存在两处小语法问题:HTML多了多余的闭合</div>标签,新闻卡片中跳转链接的<a>标签未正确闭合。

修复方案

1. 调整JS渲染逻辑

修改JS中折叠项的data-bs-parent属性值,同时修复a标签语法错误:

// 仅需修改str模板内的折叠容器部分代码,其余逻辑保持不变
let str = `<div class="accordion-item">
<h2 class="accordion-header" id="heading${index}">
  <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapse${index}" aria-expanded="false" aria-controls="collapse${index}">
    ${element.title}
  </button>
</h2>

<div id="collapse${index}" class="accordion-collapse collapse" aria-labelledby="heading${index}" data-bs-parent="#display">
  <div class="accordion-body">
    <strong>  ${element.description}</strong>
    <a href="${element.url}" target="_blank"> <button type="button" class="btn btn-primary">Learn more</button> </a>
  </div>
</div>

</div>`

2. 调整JS引入顺序

将Bootstrap JS的引入位置放到自定义JS之前,保证Bootstrap初始化完成后再执行动态渲染逻辑:

<!-- 先引入Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
    integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
    crossorigin="anonymous"></script>
<!-- 再引入自定义业务JS -->
<script src="./JS/index.js"></script>

3. 清理多余标签

删除HTML中<div class="container accordionExample" >下方多余的一个</div>闭合标签,避免DOM结构异常。

修改完成后即可实现点击任意新闻标题,其余新闻自动折叠的互斥效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:15:02