1、什么是事件

  (1) 事件是视图层到逻辑层的通讯方式。

  (2) 事件可以将用户的行为反馈到逻辑层进行处理。

  (3) 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。

  (4) 事件对象可以携带额外信息,如 id,dataset,touches

2、如何使用事件

  (1) 简单来说就是将事件绑定到组件上面,bindtap和catchtap都属于点击事件,绑定了之后点击组件可以触发这个函数。

  (2) 函数tapName会接受一个参数event,event里面存储了一些函数调用的上下文信息

  (3) 标签元素

1

<view id="tapTest" data-hi="WeChat" bindtap="tapName"> Click me! </view>

  (4) 绑定事件

1

2

3

4

5

Page({

    tapName: function(event) {

        console.log(event)

    }

})

3、bindtap和catchtap的区别

  (1) 相同点:首先他们都是作为点击事件函数,就是点击时触发。在这个作用上他们是一样的,可以不做区分。

  (2) 不同点:他们的不同点主要是bindtap是冒泡的,catchtap是非冒泡的。

4、小程序中事件分为冒泡事件和非冒泡事件。

  (1) 本文以冒泡事件tap(手指触摸后马上离开,也就是点击事件)为例子来区别bind和catch事件

  (2) bindtap? 事件绑定不会阻止冒泡事件向上冒泡

  (3) catchtap? 事件绑定可以阻止冒泡事件向上冒泡

5、例子

1、假如有三个view点击事件都是用的bindtap,三个view是层级包含关系?

1

2

3

4

5

6

7

8

9

<view id="outer" bindtap="out">

    outer view

    <view id="middle" bindtap="middle">

        middle view

        <view id="inner" bindtap="inner">

            inner view

        </view>

    </view>

</view>

2、我么在js里代码是在相对应的事件打印出log,代码如下?

1

2

3

4

5

6

7

out:function(e){

    console.log("--out bindtap click")

}, middle: function (e) {

    console.log("--middle bindtap click")

}, inner: function (e) {

    console.log("--inner bindtap click")

}

3、bindtap执行结果

  点击out view打印出一条log --> out bindtap click

  点击middle view打印出两条log --> middle bindtap click--out bindtap click

  点击innew view打印出三条log --> inner bindtap click--middle bindtap click--out bindtap click

  可以看出bindtap不阻止向上冒泡,所以点击inner一直冒泡到了最外层。

4、如果我们只修改middle view的bindtap为catchtap

  点击out view打印出一条log --> out bindtap click(因为没有上层元素故而无法向上冒泡)

  点击middle view打印出一条log --> middle bindtap click(catchtap阻止向上冒泡)

  点击innew view打印出两条log --> inner bindtap click--middle bindtap click(catchtap阻止向上冒泡)

微信小程序bindtap与catchtap的区别相关推荐

  1. 微信小程序 bindtap与catchtap的区别

    1.什么是事件 (1) 事件是视图层到逻辑层的通讯方式. (2) 事件可以将用户的行为反馈到逻辑层进行处理. (3) 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数. (4) ...

  2. 微信小程序 bindtap 和 catchtap的区别

    bindtap事件会冒泡 catchtap时间不会冒泡

  3. 微信小程序 bindtap与catchtap的事件使用和区别

    1.什么是事件 (1) 事件是视图层到逻辑层的通讯方式. (2) 事件可以将用户的行为反馈到逻辑层进行处理. (3) 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数. (4) ...

  4. 微信小程序bindtap 与 catchtap 是使用

    如果写小程序对二者不理解的,那看到这边博客,将很快帮助到您, 个人总结的一句话:,bindtap点击事件在同一个view中会向上冒泡,而catchtap 不会向上冒泡 下面会有一个demo给出解释, ...

  5. 微信小程序bindtap和carchtap的区别

    1. 事件 事件是视图层到逻辑层的通讯方式. 事件是将用户的行为反馈到逻辑层进行处理. 事件可以绑定在组件上,当触发该事件时,就会执行逻辑层中对应的事件处理函数. 2. 如何使用事件 将事件绑定到组件 ...

  6. wx小程序bindtap与catchtap的区别

    页面层wxml <!-- bindtap与catchtap的区别 --> <view id="outer" bindtap="handleTap1&qu ...

  7. [vue] vue和微信小程序写法上有什么区别?

    [vue] vue和微信小程序写法上有什么区别?写了vue项目和小程序,发现二者有许多相同之处,在此想总结一下二者的共同点和区别. 一.生命周期 先贴两张图: vue生命周期 小程序生命周期 相比之下 ...

  8. 微信小程序阻止冒泡点击_微信小程序bindtap事件与冒泡阻止详解

    bindtap就是点击事件 在.wxml文件绑定: cilck here 在一个组件的属性上添加bindtap并赋予一个值(一个函数名) 当点击该组件时, 会触发相应的函数执行 在后台.js文件中定义 ...

  9. 微信小程序与web前端的区别

    1 引言 刚接触小程序,会有很多错误的思路去编写,为了避免在代码方面出错,本文将对前端和小程序做一个区分. 2 问题描述 微信小程序与web前端的区别. 3 算法描述 在web的html中我们一般都是 ...

最新文章

  1. Camera Lens Coating
  2. 计算机 配置不过4000,台式机4000元以上免谈,非主流配置免谈
  3. 这个ERP的冬天好冷啊!
  4. MySQL了content函数_MySql字符串函数使用技巧
  5. JAVA异步爬虫_Java 爬虫遇上数据异步加载,试试这两种办法!
  6. BFS - 求最短路径
  7. LightGBM参数调优代码详解
  8. IIS7 部署MVC 运行不了 注意事项
  9. c语言程序设计实例220,C语言程序设计实例大全(220个例子)
  10. 牛津高阶字典ld2_(离线)英语词典软件推荐
  11. Xshell 3.0序列号注册激活教程
  12. 滤波器带宽,信号带宽 和晶振PPM(误差)的关系
  13. kdj买卖指标公式源码_通达信一品KDJ波段买卖操作源码免费指标公式
  14. 苹果的widget抄袭android,并非致敬!苹果解释iOS 14“桌面小工具”细节:和Android很不一样...
  15. 新书《完美统计图:Word/PPT/Excel数据可视化宝典》,包邮送
  16. P1757 通天之分组背包 (分组背包 模板
  17. 笔记本外接显示屏调节亮度不刺眼
  18. CWnd与HWND的区别与转换 如何获取本窗体对象
  19. Typora软件百度网盘下载地址
  20. MFC制作Windows画图程序(一)

热门文章

  1. MPB:微生物群落构建过程的空间可视化方法
  2. 带你读懂Spring的事务传播行为
  3. 树脂塞孔php,树脂塞孔基本工艺作业流程浅析.doc
  4. 随缘学习 扫雷游戏 题解
  5. 为什么有人会觉得五一没有放假?
  6. 【C语言项目设计】万年历系统
  7. 青云 QingCloud 实践课堂(第 2 季深圳站)
  8. 使用GFS数据驱动WRF模式场--2层嵌套 全过程学习记录
  9. c语言字符-1代表什么,玩儿转C语言:符号和字符(1)
  10. Python计算一组数据的PDF(概率密度函数)方法