I am binding an event to an element either using @click
property in Vue (it behaves the same as javascript .onclick
property).
The problem I have is when the event is called by propagating from the child DOM nodes click events I get the child DOM element as target
property and I cannot find a way a clean way (without searching for the parents, as the element might me nested deep inside) to access the DOM element that the event was registered onto inside the event callback.
<td @click="onCellClick($event)"> <div class="text"> <span>default</span> </div> </td>
Advertisement
Answer
I think the confusion is with the event’s target
vs currentTarget
event.target is what triggers the event dispatcher to trigger and event.currentTarget is what you assigned your listener to.
Vue.component('cell', { template: '#cell', methods: { onCellClick: function (e) { console.log(e.currentTarget) } } });