如果需要理解event.target和event.currentTarget的区别,必须先理解事件传播机制。如下图所示
两者区别
- current: 触发事件的元素。比如点击的目标是inner盒子,那么触发事件的元素就是inner盒子,点击的目标是outer盒子,那么触发事件的元素就是outer盒子。
- currentTarget: 处理事件的元素。处理事件的元素不是一成不变的,而是根据事件传播机制、是否绑定事件而定的。
- 如果元素没有嵌套层级关系,那么target和currentTarget没有区别。
最外层元素绑定事件 内层元素没有绑定事件情况
- 冒泡阶段处理事件情况
<view id="outer" class="outer" bindtap="onClickTap" data-money="2000">
<view id="inner" class="inner"></view>
</view>
// pages/index/index.js
Page({
onClickTap (event) {
const {
target,currentTarget} = event
// target: 触发事件的元素
// currrentTarget:处理事件的元素
console.log(target) // inner
console.log(currentTarget) // outer
console.log(target<