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

PrimeVue Accordion问题:点击特定输入时禁止展开面板

解决PrimeVue Accordion头部内点击CheckBox不触发面板展开的问题

核心问题是CheckBox的点击事件会冒泡到父级的AccordionHeader,触发面板展开逻辑。z-index无法解决这个问题,因为它只控制元素层叠顺序,和DOM事件流无关。以下是两种可行的解决方法:

  • 方法一:直接用事件修饰符阻止冒泡
    给CheckBox添加@click.stop修饰符,直接阻止点击事件向上冒泡:

    <accordion-header>
       <div>
          <span>Something</span>
          <Checkbox
            :model-value="thing"
            :binary="true"
            @input="toggle"
            @click.stop
          />
       </div>
    </accordion-header>
    
  • 方法二:在处理函数中手动阻止冒泡
    如果需要在toggle方法中执行额外逻辑,可以把事件对象传入方法,再调用stopPropagation():
    模板代码:

    <accordion-header>
       <div>
          <span>Something</span>
          <Checkbox
            :model-value="thing"
            :binary="true"
            @input="toggle($event)"
          />
       </div>
    </accordion-header>
    

    对应的JS方法:

    toggle(event) {
      // 这里写你的原有业务逻辑
      event.stopPropagation(); // 阻止事件冒泡到AccordionHeader
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 18:53:11