JS event.currentTarget( ) 和 event.target( ) 的区别

这两个方法都是监听事件触发的目标。区别是,event.currentTarget( ) 会返回当前触发事件的元素;而event.target( ) 会返回触发事件触发的源头元素。

用法:可以用来监听触发事件的元素是否事件发生的源头元素。这个源头元素指的是,当我点击子元素,虽然父元素的点击事件也会被触发(冒泡机制),但子元素才是事件的源头元素。

event.currentTarget( )

返回其监听器触发事件的节点,即当前处理该事件的元素、文档或窗口。包括冒泡和捕获事件。

event.target( )

target 事件属性可返回事件的目标节点(触发该事件的节点,也就是事件发生的源头,事件发生所绑定的那个节点),如生成事件的元素、文档或窗口。也就是说,监听冒泡或者捕获事件的 target,会返回事件发生的那个元素,而不是冒泡或者捕获事件触发的元素。


例子:

 event.currentTarget( )


<div id="app">
  <div class="outer" @click="outer">最外层
    <div class="middle" @click="middle">中间
      <div class="inner" @click="inner">最内层点击我(^_^)</div>
    </div>
  </div>
  <p></p>
</div>

<script type="text/javascript">

  let app = new Vue({
    el: '#app',
    methods: {
      inner: function (e) {
        console.log( '触发了inner 事件'+"  currentTarget:"+e.currentTarget.className)
      },
      middle: function (e) {
        console.log( '触发了middle事件'+"  currentTarget:"+e.currentTarget.className)
      },
      outer: function (e) {
        console.log( '触发了outer事件'+"   currentTarget:"+e.currentTarget.className)
      }
    }
  })

</script>


event.target( ) 

<div id="app">
  <div class="outer" @click="outer">最外层
    <div class="middle" @click="middle">中间
      <div class="inner" @click="inner">最内层点击我(^_^)</div>
    </div>
  </div>
  <p></p>
</div>

<script type="text/javascript">

  let app = new Vue({
    el: '#app',
    methods: {
      inner: function (e) {
        console.log( '触发了inner 事件'+"  target:"+e.target.className)
      },
      middle: function (e) {
        console.log( '触发了middle事件'+"  target:"+e.target.className)
      },
      outer: function (e) {
        console.log( '触发了outer事件'+"   target:"+e.target.className)
      }
    }
  })

</script>

 

  • 9
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值