为了账号安全,请及时绑定邮箱和手机立即绑定

js中e.target跟this不相等吗?

js中e.target跟this不相等吗?

杨__羊羊 2018-10-10 09:18:57
刚写一个点击事件用$(this)不行,换成$(e.target)就可以了,所以这两个不一样吗?有什么区别呢?
查看完整描述

1 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

1.event.target与this的区别
event.target表示发生点击事件的元素;
this表示的是注册点击事件的元素
this 等于 e.currentTarget 
this是所有函数原生具有的.进入函数时,this已经直接有了目标对象.
而e.target通过e再寻找target,中转了一下。所以相比较而言,this的执行效率更高些。
2 $(this.target)与$(this)比较的问题
有人会问为什么$(this.target)!=$(this)?
因为你用了jq来构造两个对象, 所以你最后一步比较的时候, 哪怕是两个对象的内容一模一样, 结果也是不想等的, 对象的比较比较的是指针, 两个指针
不一样所以是不想等的, 简单的说就是
var a = new Object();
var b = new Object();// 这两个对象看起来是一模一样的吧, 但是比较结果依然不想等
你直接比较 this == e.target 这样才能得出正确的结果

查看完整回答
反对 回复 2018-11-03
  • 1 回答
  • 0 关注
  • 861 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号