这个问题我觉得还是比较重要的,因为我们只要做过vue项目,基本会遇到这个问题。然而很多人是随便用,感觉都差不多,其实他们是有本质区别的,一旦没用好,随之扑面而来的就是bug
event.currentTarget始终指向事件所绑定的元素,而event.target指向事件发生时的元素。
1 2 3 4 5 | <a href="javascript:;" @click="openPlays($event)" class="openplays-btn"> 记住,我通过换行符隔开,方便测试 <br> <i class="iconfont"></i> </a> |
1 2 3 |
从上面的结果可以看出,不管你点击的是a本身或者a里面任何子集,currentTarget其获取到的对象都为绑定事件的a;当使用target时,如果你点击到a元素则传a元素,如果点击到a之中的某个子级元素则传a之中的某个元素。一句话,target会变,点到谁身上返回谁,currentTarget不会变,返回事件源对象。另外要强调一个问题,在我们直接打印例如:console.log(e)时候,你会发现控制台打印出来的currentTarget是null,有些同学可能一时就慌神了,具体原因我也没找到确切答案,但你打印e.currentTarget你会发现,这个值是肯定会存在的。
上一篇:Vue中watch属性和methods的方法用箭头函数定义结果会怎么样?
下一篇:推荐Visual Studio Code快速编写vue.js的神器插件
支付宝扫一扫打赏
微信扫一扫打赏
共 0 条评论关于"在vue事件中传入$event,使用e.target和e.currentTarget有什么区别"
最新评论