微信小程序的事件冒泡和捕获

  • 事件冒泡
  • 阻止事件冒泡
  • 事件捕获
  • 中断事件捕获

事件冒泡

当一个组件上的事件被触发后,该事件会向父节点传递。

bind事件名

eventBind.wxss

.one{width: 300px;height: 300px;background: #96c24e;
}
.two{width: 200px;height: 200px;background-color: #bec936;
}
.three{width: 100px;height: 100px;background-color: #f97d1c;
}

eventBind.js

Page({_handlerOne:function(){console.log("one");},_handlerTwo:function(){console.log("Two");},_handlerThree:function(){console.log("Three");}
})

eventBind.wxml

<text>事件的冒泡</text>
<view class="one" bindtap="_handlerOne">one<view class="two" bindtap="_handlerTwo">two<view class="three" bindtap="_handlerThree">three</view></view>
</view>

当点击three层时:

事件会冒泡到two层和one层:

阻止事件冒泡

catch事件名

eventBind.wxml

<text>事件的冒泡</text>
<view class="one" bindtap="_handlerOne">one<view class="two" catchtap="_handlerTwo">two<view class="three" bindtap="_handlerThree">three</view></view>
</view>

当点击three层时:

事件向父组件冒泡,冒泡到two层时被阻止。

事件捕获

捕获阶段位于冒泡阶段之前,且在捕获阶段中,事件到达节点的顺序与冒泡阶段恰好相反。需要在捕获阶段监听事件时,可以采用:

capture-bind:事件名

eventBind.wxml

<view class="one" capture-bind:tap="_handlerOne">one<view class="two" capture-bind:tap="_handlerTwo">two<view class="three" capture-bind:tap="_handlerThree">three</view></view>
</view>

当点击three层时:

事件捕获开始,从被点击的父组件执行到该被点击的元素:

中断事件捕获

capture-catch:事件名

capture-catch关键字,后者将中断捕获阶段和取消冒泡阶段。

eventBind.wxml

<view class="one" capture-bind:tap="_handlerOne">one<view class="two" capture-catch:tap="_handlerTwo">two<view class="three" capture-bind:tap="_handlerThree">three</view></view>
</view>

当点击three层:


事件在two层被中断:

微信小程序的事件冒泡和捕获相关推荐

  1. 微信小程序阻止事件冒泡

    在vue中阻止事件冒泡的方法使用的event.stopPropagation(); 但微信小程序中事件传递的event却没有stopPropagation()这个方法 解决方案:将绑定事件的bindt ...

  2. 微信小程序 阻止事件冒泡

    uniapp阻止事件冒泡:将子类的点击事件@click写成@click.stop 小程序阻止事件冒泡:将子类的点击事件bindtap写成catchtap

  3. wxml修改样式_微信小程序 动态绑定事件并实现事件修改样式

    微信小程序 动态绑定事件并实现事件修改样式 实例代码 wxml {{item.name}} js var reportTypeList = [ { name: "日报1", id: ...

  4. 微信小程序之阻止冒泡事件

    众所周知,在微信小程序给标签绑定点击方法大家都会想到 "bindtap" 但是在页面中会遇到 点击 会冒泡而触发其他元素的时间发生 那么怎么办呢 就把引发冒泡事件的始作俑者的 bi ...

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

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

  6. 微信小程序-绑定事件以及bindtap和catchtap的区别

    前言 在微信小程序的开发过程中我们肯定会遇到时间绑定的问题,这时候我们一般都是采用bandtap或者是catchtap进行事件绑定的.那么他们两个的区别在哪里呢? 一.首先我们要先知道什么是事件 微信 ...

  7. 微信小程序scroll事件/onPageScroll事件的延迟问题

    需求 在前端开发中,我们经常会遇到一个需求,在页面进行滚动操作的时候,当页面其中的某个元素滚动到某个位置,我们就让该元素停留在该位置.等到滚动小于某个值的时候,再让该元素继续随着页面滚动.这就是我们平 ...

  8. 微信小程序 - 绑定事件 bindtap(包括是否传入参数)

      小程序绑定事件的方式有很多种,这里我只对bindtap的绑定方式进行介绍,其他的绑定方式也是差不多这样的. 1.不带参数的绑定方式 index.wxml文件中:share表示绑定的事件名称 < ...

  9. 微信小程序画布实现冒泡点赞,三阶贝塞尔曲线

    一.核心代码 1)wxml 核心代码 <canvas wx:for="{{bezierCount-0}}" wx:key="key" class=&quo ...

  10. WeChat applet 微信小程序(3) 事件绑定

    WeChat applet 事件绑定 概述 事件是视图层到逻辑层的通讯方式,事件可以将用户的行为反馈到逻辑层进行处理. 事件可以绑定到组件,当用户在视图层触发该组件的事件时,就会执行逻辑层中对应的事件 ...

最新文章

  1. [摘录]第8章 与非美国人谈判的技巧
  2. python 格式化方法 从其他信息构建字符串
  3. 对tableView三种计算动态行高方法的分析
  4. http抓包神器:Charles for Mac 特别版v4.6
  5. Caused by: java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher
  6. tomcat配置SSL加密网站
  7. teablue数据分析_Bluetea蓝茶的品牌该如何分析,你知道吗
  8. uni app项目资讯列表展开与收起
  9. 黑客攻防从入门到精通 1-6章
  10. 实训报告html前端开发,web前端开发实习报告比你想象中简单
  11. 爬虫剑谱第七页(输入关键词爬取拼多多商品信息并进行保存)
  12. #把一个数把各个位数拆取出来
  13. hawk大数据基础知识总结(1)
  14. Python 办公效率化学习(自学)四.Excel文件的写入
  15. 2022年研究生初试成绩终于来了-文都管联院
  16. Java-设计模式之单例模式
  17. java基础测试大集合 今天收罗精选一下Java题 适合小白挑战和新手回顾
  18. 仿射密码加密解密代码(java)
  19. CATIA Automation 编程初探
  20. JVM之G1垃圾收集器

热门文章

  1. SecureCRT and SecureFX 8.3 中文版
  2. 如何使用Bootbox
  3. 日语入门难?学日语最好用的工具——早道五十音图
  4. 根据出库、入库表,实现对库存的信息查询
  5. java五子棋人机对战_java swing人机对战五子棋
  6. qt.qpa.xcb: could not connect to display qt.qpa.plugin: Could not load the Qt platform plugin “xcb“
  7. 全国计算机一级考试试题题库---附答案
  8. Error:algorithms should be set错误
  9. TNF8SLNO 华为OSN1800全新4路STM-16/8路STM-4/8路STM-1业务板
  10. wifi信号衰减与距离关系_WIFI信号的空间如何衰减 WIFI信号的空间衰减介绍【详解】...