【发布时间】:2020-07-01 10:48:11
【问题描述】:
我在我的 vue 组件中创建了以下模板
<b-button v-on:click="check($event)" class="btn btn-success" data-action="consent">
<b-icon-check></b-icon-check>
</b-button>
但是,单击事件似乎仅在我单击按钮本身时才起作用,例如在图标周围的侧面,而不是在单击图标本身时。
我想知道是否有更好的方法来完成我想要实现的目标,而不是添加另一个 v-on:click 图标本身。
基本上我希望按钮触发点击事件,即使它的任何子元素被点击。
这里是函数检查(事件)
methods:{
check(event){
let action = event.target.getAttribute('data-action');
if(action === 'consent'){
this.checked = true;
}
else{
this.checked = false;
}
}
},
阅读 cmets 和修饰符链接后,我认为我的错误是假设 event.target 将成为按钮。相反,图标本身就是我的代码失败的原因。
【问题讨论】:
-
好像有什么东西阻止了图标冒泡到按钮,你能分享
check方法的代码吗? -
我刚刚更新了问题,因为我认为该事件实际上正在触发但不起作用,因为我正在处理错误的 event.target。但我想知道为什么它也不会传播到按钮。
-
我测试了你的代码,点击图标确实触发了事件
-
您错过了
data-action的图标失败event.target.getAttribute('data-action')将data-action="consent"添加到<b-icon-check></b-icon-check>
标签: javascript vue.js bootstrap-vue