微信小程序中,e.target与e.currentTarget有什么本质区别?
- 内容介绍
- 文章标签
- 相关推荐
本文共计521个文字,预计阅读时间需要3分钟。
在小程序的事件处理中,我们经常使用以下属性来传递参数:- `target`:事件源组件对象- `currentTarget`:触发事件的组件对象
这两个属性的作用如下:- `target`:指向事件源组件对象,即触发事件的组件。- `currentTarget`:指向触发事件的组件对象,即绑定事件的组件。
刚开始接触时可能会有些困惑,以下是一些例子帮助理解:- `target`:假设点击了一个按钮,`target`将指向这个按钮。- `currentTarget`:依然是指向这个按钮,因为按钮是绑定事件的组件。
简单来说,`target`和`currentTarget`在事件处理中起到传递组件对象的作用,方便我们获取和操作事件相关的组件。
在小程序的点击事件中,我们经常使用这两个属性来传参,看起来效果一样,查了官方文档如下:
target:事件源组件对象
currentTarget:当前组件对象
什么意思?我刚开始就有点不懂,那就直接上代码:
<view id="outter" bindtap="tap1"> outer view <view id="middle" bindtap="tap2"> middle view <view id="inner" bindtap="tap3"> inner view </view> </view> </view> tap1: function (e) { console.log(1, e) }, tap2: function (e) { console.log(2, e) }, tap3: function (e) { console.log(3, e) },
结果如下:
点击子元素inner,但由于事件冒泡父元素middle和outter都触发,从上图中我们可以看出区别:
父元素middle和outter,target的id都是等于inner(子元素的id);
middle的currentTarget的id是middle,outter的currentTarget的id是outter;
总结:
target:事件源组件对象(事件冒泡源头)
currentTarget:当前组件对象(就是当前对象)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。
本文共计521个文字,预计阅读时间需要3分钟。
在小程序的事件处理中,我们经常使用以下属性来传递参数:- `target`:事件源组件对象- `currentTarget`:触发事件的组件对象
这两个属性的作用如下:- `target`:指向事件源组件对象,即触发事件的组件。- `currentTarget`:指向触发事件的组件对象,即绑定事件的组件。
刚开始接触时可能会有些困惑,以下是一些例子帮助理解:- `target`:假设点击了一个按钮,`target`将指向这个按钮。- `currentTarget`:依然是指向这个按钮,因为按钮是绑定事件的组件。
简单来说,`target`和`currentTarget`在事件处理中起到传递组件对象的作用,方便我们获取和操作事件相关的组件。
在小程序的点击事件中,我们经常使用这两个属性来传参,看起来效果一样,查了官方文档如下:
target:事件源组件对象
currentTarget:当前组件对象
什么意思?我刚开始就有点不懂,那就直接上代码:
<view id="outter" bindtap="tap1"> outer view <view id="middle" bindtap="tap2"> middle view <view id="inner" bindtap="tap3"> inner view </view> </view> </view> tap1: function (e) { console.log(1, e) }, tap2: function (e) { console.log(2, e) }, tap3: function (e) { console.log(3, e) },
结果如下:
点击子元素inner,但由于事件冒泡父元素middle和outter都触发,从上图中我们可以看出区别:
父元素middle和outter,target的id都是等于inner(子元素的id);
middle的currentTarget的id是middle,outter的currentTarget的id是outter;
总结:
target:事件源组件对象(事件冒泡源头)
currentTarget:当前组件对象(就是当前对象)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

