收藏
回答

为什么事件的targe和currentTarget总是不相等?

如果事件绑定元素和触发事件元素是同一元素,难道这两者不应该相等吗?

回答关注问题邀请回答
收藏

4 个回答

  • 郑钱花
    郑钱花
    2021-11-15

    你听说过事件冒泡机制吗

    2021-11-15
    有用
    回复 1
    • 观众
      观众
      发表于移动端
      2021-11-15
      我的目的其实就是点击事件绑定元素然后触发事件。所以我使用的是捕获阶段且阻止捕获,capture-catch前缀,但好像不好使,我就打算通过target和currenttarget相等来达到目的,但是不相等,后来我取了两者的id比较达到了目的。
      2021-11-15
      回复
  • 肖荣豪
    肖荣豪
    2021-11-15

    https://blog.csdn.net/u012967849/article/details/114500117

    2021-11-15
    有用
    回复 1
    • 观众
      观众
      发表于移动端
      2021-11-15
      这篇文章靠前的一句话就写着target和currenttarget有时候会相等,而我遇到的是他们总是不相等
      2021-11-15
      回复
  • 曹孟良
    曹孟良
    2021-11-15

    冒昧问一句,你是用这种代码来确定他们相不相等吗?还是看到他们具体的数据不等,有没有打印截图看看?

    var a = e.currentTarget
    var b = e.target
    console.log(a==b);
    
    2021-11-15
    有用
    回复 7
    • 观众
      观众
      发表于移动端
      2021-11-15
      e.target === e.currentTarget,它们总是不相等,我后来使用e.target.id === e.currentTarget.id来判断了。反正就是奇怪
      2021-11-15
      回复
    • 曹孟良
      曹孟良
      2021-11-15回复观众
      因为对象类型不支持这样的判断方式,具体怎么判断两个对象是相等的,可以去搜搜文章,很多
      2021-11-15
      回复
    • 观众
      观众
      发表于移动端
      2021-11-15回复曹孟良
      target和currenttarget如果指的是同一个元素,他们的引用不应该是同一个吗?
      2021-11-15
      回复
    • 曹孟良
      曹孟良
      2021-11-15回复观众
      这个我也不清楚是不是同一个引用,但你直接用===来判断对象相等是不行的,得换个方法
      2021-11-15
      回复
    • 观众
      观众
      2021-11-15
      2021-11-15
      回复
    查看更多(2)
  • 观众
    观众
    2021-11-15

    只能拿ID区分?

    2021-11-15
    有用
    回复
登录 后发表内容