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

如何阻止点击内容区域时accordion(手风琴)组件自动关闭

问题原因

你当前将点击事件绑定在了整个.media-box-actuaries_accordion父容器上,容器内所有区域(包括展开后的内容区域)的点击都会触发类名切换逻辑,因此点击内容时会触发手风琴收起。

修复方案

仅需要调整JS代码即可实现需求,无需修改原有HTML和CSS,两种实现方式可选:

方案1:将点击事件绑定到头部(更推荐)

仅监听头部的点击事件,点击时切换父容器的激活状态,更符合常规交互逻辑:

const accordionHeaders = document.querySelectorAll('.media-box-header-accordion');

for (let i = 0; i < accordionHeaders.length; i++ ){
  accordionHeaders[i].addEventListener('click', function(){
    this.closest('.media-box-actuaries_accordion').classList.toggle('active');
  })
}

方案2:原有绑定逻辑下增加点击区域判断

如果不想调整事件绑定的目标元素,也可以在原有逻辑中增加判断,点击内容区域时直接跳过切换逻辑:

const accordion = document.getElementsByClassName ('media-box-actuaries_accordion');

for (let i = 0; i < accordion.length; i++ ){
  accordion[i].addEventListener('click', function(e){
    // 点击内容区域时不执行切换
    if(e.target.closest('.media-box-actuaries_accordion_content')) return
    this.classList.toggle('active');
  })
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:00:04