我在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; } } },
[阅读注释和修饰符的链接后,我认为我的错误是假设
event.target
将成为按钮。相反,正是图标本身才是我的代码失败的原因。
我在vue组件中创建了以下模板event.currentTarget.getAttribute('data-action')
从绑定事件侦听器的位置获取data*
属性。 event.currentTarget
将始终是事件侦听器所绑定的元素(而不是实际启动click
事件的元素,这是event.target
所指向的元素。)>