我使用Vue中的@click
属性将事件绑定到元素(它的行为与javascript .onclick
属性相同)。
我遇到的问题是通过从子DOM节点传播来调用事件时单击事件我将子DOM元素作为target
属性,我找不到一种干净的方式(不搜索父项) ,因为元素可能会嵌套在内部)来访问事件在事件回调中注册的DOM元素。
<td @click="onCellClick($event)">
<div class="text">
<span>default</span>
</div>
</td>
&#13;
答案 0 :(得分:3)
我认为事件的混乱是target
vs currentTarget
event.target触发事件调度程序触发,event.currentTarget是您为侦听器分配的内容。
Vue.component('cell', {
template: '#cell',
methods: {
onCellClick: function (e) {
console.log(e.currentTarget)
}
}
});
答案 1 :(得分:0)
您可以使用refs:
<td @click="onCellClick($event)" ref="cell1">
<div class="text">
<span>default</span>
</div>
</td>
onCellClick(evt){
console.log(this.$refs.cell1)
}