vue事件绑定bug

<div v-for='(item,key) in sku.list' @click=changeSku(key,$event)>
    <img :src="item.image">
</div>

事件绑定在div上,$event打印出来却是img
阅读 2.5k
3 个回答

$event 是事件,代码中打印出来的是 MouseEvent(我使用鼠标点击),要得到与事件相关的 DOM元素,需要打印$event.currentTarget(指向被绑定事件句柄(event handler)的元素) 或者 $event.target(指向触发该事件的元素),前者为div,后者为img

使用原生JS(不引用框架)重写你的代码,你会发现输出结果是一样的,所以不是bug

console.log($event.currentTarget)

可能是因为时间冒泡了,这是一个时间机制

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题