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

Vue.js中点击删除按钮如何阻止父元素changeFilter事件触发?

阻止删除按钮触发父级li的点击事件

这是事件冒泡导致的问题:点击子元素(删除按钮)时,事件会向上传播到父级li元素,触发li上绑定的changeFilter事件。给你两种解决方法:

方法一:使用Vue的.stop事件修饰符(推荐)

直接在删除按钮的点击事件上添加.stop修饰符,它会自动调用event.stopPropagation()阻止事件冒泡,写法最简洁:

修改后的HTML代码:

<ul>
    <li v-on:click="createNew">Create new Filter</li>
    <li v-for="item in filters.entities" v-on:click="filter.changeFilter(item.id,item.name)">
        {{ item.name }}
        <div title="Delete filter" v-on:click.stop="delete(item.id)">x</div>
    </li>
</ul>

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

如果需要在删除逻辑里额外处理事件,可以显式传递事件对象,然后调用阻止冒泡的方法:

步骤1:修改HTML,传递事件对象$event

<ul>
    <li v-on:click="createNew">Create new Filter</li>
    <li v-for="item in filters.entities" v-on:click="filter.changeFilter(item.id,item.name)">
        {{ item.name }}
        <div title="Delete filter" v-on:click="delete($event, item.id)">x</div>
    </li>
</ul>

步骤2:修改JS方法,添加阻止冒泡逻辑

delete: (event, itemId) => {
    event.stopPropagation(); // 阻止事件向上冒泡到父级li
    var result = window.parent.Xrm.WebApi.deleteRecord('ice_filters', itemId.toString());
}

两种方法都能解决问题,优先用方法一,代码更简洁易维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 01:45:35