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

如何阻止Vuetify 3展开面板点击内部清除按钮时关闭

在Vuetify 3中阻止点击actions插槽内按钮时关闭展开面板

问题核心是点击mdi-eraser图标时,点击事件会向上冒泡到v-expansion-panel-title组件,触发其默认的展开/收起切换逻辑。只需阻止事件冒泡即可解决,以下是两种常用方案:

方法一:使用Vue事件修饰符.stop

直接在@click指令后添加.stop修饰符,自动阻止事件向上冒泡,代码更简洁:

<v-expansion-panels>
    <v-expansion-panel>
        <v-expansion-panel-title>
            Buscador
            <template v-slot:actions="{ expanded }">
                <v-icon :color="!expanded ? 'teal' : ''">{{ expanded ? 'mdi-minus' : 'mdi-plus' }}</v-icon>
                <!-- 添加.stop修饰符阻止冒泡 -->
                <v-icon class="ml-2" @click.stop="limpiarBuscador">mdi-eraser</v-icon>
            </template>
        </v-expansion-panel-title>
        <v-expansion-panel-text>
<!-- SOME INFO -->
        </v-expansion-panel-text>
    </v-expansion-panel>
</v-expansion-panels>

方法二:在方法中手动阻止冒泡

如果需要在limpiarBuscador内执行额外逻辑,可传递事件参数并调用stopPropagation():

模板代码:

<v-expansion-panels>
    <v-expansion-panel>
        <v-expansion-panel-title>
            Buscador
            <template v-slot:actions="{ expanded }">
                <v-icon :color="!expanded ? 'teal' : ''">{{ expanded ? 'mdi-minus' : 'mdi-plus' }}</v-icon>
                <!-- 传递$event参数给方法 -->
                <v-icon class="ml-2" @click="limpiarBuscador($event)">mdi-eraser</v-icon>
            </template>
        </v-expansion-panel-title>
        <v-expansion-panel-text>
<!-- SOME INFO -->
        </v-expansion-panel-text>
    </v-expansion-panel>
</v-expansion-panels>

脚本逻辑:

function limpiarBuscador(event) {
    // 先阻止事件冒泡
    event.stopPropagation();
    // 执行你的清除逻辑
    // ...
}

两种方案均可实现需求,推荐第一种方法,代码更直观简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 17:25:09