小程序--e.target和e.currentTarget区别

target:指事件源组件对象     currentTarget:当前组件对象

分两种情况是属于冒泡事件还是非冒泡事件

第一种情况:属于冒泡行为bind

wxml页面代码:

<view id="outter" bind:tap="tap1">
   outer view
   <view id="middle" bind:tap="tap2">
     middle view
     <view id="inner" bind:tap="tap3">
       inner view
      </view>
   </view>
</view>

js代码:

 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;

第二种情况:非冒泡行为 catch

wxml代码:  (和第一种不一样的点在于都改成catch:tap)

<view id="outter" catch:tap="tap1">
   outer view
   <view id="middle" catch:tap="tap2">
     middle view
     <view id="inner" catch:tap="tap3">
       inner view
      </view>
   </view>
</view>

js代码:

 tap1: function (e) {
    console.log(1, e)
  },
  tap2: function (e) {
    console.log(2, e)
  },
  tap3: function (e) {
    console.log(3, e)
  }

结果:

因为在middle和inner都设置了非冒泡行为,所以都只是运行到自己的不会往上走,这个结果是分别点击了middle和inner,以上这些可以得出:

当事件没有冒泡行为时,target和currentTarget都指向事件触发的对象本身。

需要注意的:还有一种情况是假如inner是冒泡,middle是非冒泡,点击inner的结果

结果还是和第一种一样

总结:

 1.当全是冒泡行为时:

target:事件源组件对象(事件的冒泡源头)

currentTarget:当前组件对象(就是当前所处的对象)

2.当没有冒泡行为时:

target和cueerntTarget是一样的,就是当前所处的对象

原文地址:https://www.cnblogs.com/wangcuican/p/11794032.html

时间: 2024-10-10 14:21:20

小程序--e.target和e.currentTarget区别的相关文章

【小程序】获取到的e.target与e.currentTarget区别

[小程序]获取到的e.target与e.currentTarget区别:https://blog.csdn.net/qq_33744228/article/details/80310294 使用e.target.dataset的问题:https://www.cnblogs.com/xiaoli52qd/p/7857468.html 原文地址:https://www.cnblogs.com/bydzhangxiaowei/p/9647334.html

微信小程序的target和currentTarget的区别

https://www.jb51.net/article/160886.htm 在小程序的事件回调触发时,会接收一个事件对象,事件对象的参数中包含一个target和currentTarget属性,接下来说说这二者的区别. 首先上代码: wxml部分: ? 1 2 3 4 <view id='tar-father' bindtap='click'>   父组件   <view id='tar-children'>子组件</view>  </view> wxss

微信小程序中target与currentTarget

如有错误,请纠出,大家一起进步!!! target在事件流的目标阶段:currentTarget在事件流的捕获,目标及冒泡阶段.但事件流处于目标阶段,target与currentTarget指向一样, 而当处于捕获和冒泡阶段的时候,target指向被单击的对象而currentTarget指向当前事件活动的对象.在微信小程序中也可总结为:target指向发生事件的组件,currentTarget指向绑定事件的组件. 下面请看例子: text.wxml: <view class="view1&

微信小程序————1wxss和css的部分区别

集成微信提供 的weui进微信小程序wxss 最开始将weui.css 全部复制进入app.wxss里面,发现跑不起来. 搜索了下,常见原因有如下几点: 截止2016.11.14日, wxss和css的部分区别 不支持:first-child这类写法, 不支持:active 不支持:checked 不支持自定义字体 @font-face { font-weight: normal; font-style: normal; font-family: "weui"; .a>.b .a

微信小程序 - 事件绑定bind和catch 区别

本文以冒泡事件tap(手指触摸后马上离开,也就是点击事件)为例子来区别bind和catch事件.在小程序中事件分为冒泡事件和非冒泡事件: bindtap  事件绑定不会阻止冒泡事件向上冒泡 catchtap  事件绑定可以阻止冒泡事件向上冒泡 假如有三个view点击事件都是用的bindtap,三个view是层级包含关系 <view id="outer" bindtap="out"> outer view <view id="middle&

小程序,App,H5的区别

小程序与 App 的区别 技术 微信小程序就是微信支持的一种第三方插件,微信向这种第三方插件开放了更多的功能接口,从丰富的界面控制到多种框架,特别合适提供了更多的对移动设备的访问能力. 运行环境 原生 App 直接运行在操作系统的单独进程中(在 Android 中还可以开启多进程),而小程序只能运行在微信的进程中. 开发成本 原生 App 的开发涉及到 Android/iOS 多个平台.开发工具.开发语言.不同设备的适配等问题:而小程序只需要开发一个就可以在 Android/iOS 等不同平台不

微信小程序组件——bindtap和catchtap的区别

了解知识点 DOM模型是一个树形结构,在DOM模型中,HTML元素是有层次的.当一个HTML元素上产生一个事件时,该事件会在DOM树中元素节点与根节点之间按特定的顺序传播,路径所经过的节点都会收到该事件,这个传播过程就是DOM事件流. JS冒泡事件:当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的(所有祖先元素)中被触发.这 一过程被称为事件冒泡:这个事件从原始元素开始一直冒泡到DOM树的最上层 共同点 在微信小程序的事件机制中,bindtap和catchta

小程序企业与个人有什么区别吗?

个别主题小程序与组织机构小程序之间有什么区别?有什么相对的限制? 注册时的区别: 只要个人身份信息足够,个人版本的注册就需要很少的“资格”.注册过程要简单得多. 商业版的注册很麻烦.有必要提供经理的身份信息,同时提供各种资格,公共账户,商业验证等.公司必须提供一系列证书和验证. 个人版注册不需要收取300元的认证费(因为个人版目前不支持认证) 该认证的企业版将花费300元 开发的小程序性质不同: 接口限制 单个主题的小程序不应该能够充分利用小程序的接口和功能.什么具体的接口不能使用? 1. 微信

小程序 wx.navigateTo和 wx.redirectTo区别

wx.navigateTo 官方解释: 意思就是说. A页面跳转B页面 B页面做了操作,点击保存,再跳转回A页面 此时,如果点击左上返回按钮,仍然可以跳转回B页面,而且里面的数据是操作之前的数据 wx.redirectTo 官方解释: 意思是说. A页面跳转B页面 B页面做了操作,点击保存,再跳转回A页面 此时点击左上角返回按钮,已经不能跳转回操作前的B页面了. 原文地址:https://www.cnblogs.com/chenrunxuan/p/11294650.html