微信小程序冒泡事件及其阻止方法实例分析


Posted in Javascript onDecember 06, 2018

本文实例讲述了微信小程序冒泡事件及其阻止方法。分享给大家供大家参考,具体如下:

事件的类别分为几种:

  • 点击事件:tap
  • 长按事件:longtap
  • 触摸事件:touchstart; touchend;touchcancel;touchmove
  • 其他:input;submit....

其中前三类是冒泡事件,其他的称为非冒泡事件

写一个简单的例子,代码就不一一贴出来了,WXML的文件如下:

<view class='redview' bindtap='redclick'>
 红色
 <view class='yellowview' bindtap='yellowclick'>
  黄色
  <view class='blueview' bindtap='blueclick'>
   蓝色
  </view>
 </view>
</view>

效果如图:

微信小程序冒泡事件及其阻止方法实例分析

当我点击最内层的蓝色方框的时候,打印的结果如下:

微信小程序冒泡事件及其阻止方法实例分析

冒泡事件的机制是先打印点击的蓝色,也就是最内层,然后依次打印第二层和第三层。假设点击黄色层,会依次打印出黄色和红色。点击红色时只打印红色。

但是也可以阻止冒泡事件的发生,其实很简单,直接把bindtap改为catchtap即可。

<view class='redview' bindtap='redclick'>
 红色
 <view class='yellowview' bindtap='yellowclick'>
  黄色
  <view class='blueview' catchtap='blueclick'>
   蓝色
  </view>
 </view>
</view>

这样你点击最内层的蓝色,只会打印蓝色而不会打印出黄色和红色了。但是点击黄色还是会打印黄色和红色,这个时候再把黄色页面的bindtap改成catchtap就可以了。

友情提示:有一部分标签是默认在最上层的,比如video,想在video上放一个view然后设置catchtap将video覆盖是无效的。

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
ExtJS 简介 让你知道extjs是什么
Dec 29 Javascript
js delete 用法(删除对象属性及变量)
Aug 24 Javascript
Mac OS X 系统下安装和部署Egret引擎开发环境
Sep 03 Javascript
bootstrap flask登录页面编写实例
Nov 01 Javascript
3种不同的ContextMenu右键菜单实现代码
Nov 03 Javascript
ES6使用let命令更简单的实现块级作用域实例分析
Mar 31 Javascript
Vue组件通信之Bus的具体使用
Dec 28 Javascript
JavaScript基础之静态方法和实例方法分析
Dec 26 Javascript
layui 阻止图片上传的实例(before方法)
Sep 26 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
Oct 14 Javascript
js实现磁性吸附的示例
Oct 26 Javascript
JavaScript实现随机点名小程序
Oct 29 Javascript
谈谈React中的Render Props模式
Dec 06 #Javascript
详解Vue-axios 设置请求头问题
Dec 06 #Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
Dec 06 #jQuery
jQuery动态操作表单示例【基于table表格】
Dec 06 #jQuery
js防抖和节流的深入讲解
Dec 06 #Javascript
angular中两种表单的区别(响应式和模板驱动表单)
Dec 06 #Javascript
微信小程序dom操作的替代思路实例分析
Dec 06 #Javascript
You might like
用PHP编程语言开发动态WAP页面
2006/10/09 PHP
smarty 原来也不过如此~~呵呵
2006/11/25 PHP
PHP经典的给图片加水印程序
2006/12/06 PHP
利用static实现表格的颜色隔行显示的代码
2007/09/02 PHP
php cli模式学习(PHP命令行模式)
2013/06/03 PHP
YII Framework框架教程之使用YIIC快速创建YII应用详解
2016/03/15 PHP
CodeIgniter生成静态页的方法
2016/05/17 PHP
PHP+MySQL存储数据常见中文乱码问题小结
2016/06/13 PHP
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
FLASH 广告之外的链接
2008/12/16 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
JQuery限制复选框checkbox可选中个数的方法
2015/04/20 Javascript
jquery插件pagination实现无刷新ajax分页
2015/09/30 Javascript
浅谈bootstrap使用中的一些问题以及解决过程
2016/10/18 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
AngularJS ui-router (嵌套路由)实例
2017/03/10 Javascript
vue.js开发环境搭建教程
2017/05/04 Javascript
JavaScript中EventLoop介绍
2018/01/22 Javascript
[03:37]2015国际邀请赛第四日现场精彩集锦
2015/08/08 DOTA
[01:46]DOTA2上海特锦赛小组赛英文解说KotlGuy采访
2016/02/27 DOTA
python中字符串前面加r的作用
2015/06/04 Python
浅谈Python生成器generator之next和send的运行流程(详解)
2017/05/08 Python
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
Python实现接受任意个数参数的函数方法
2018/04/21 Python
python 实现分页显示从es中获取的数据方法
2018/12/26 Python
python列表每个元素同增同减和列表元素去空格的实例
2019/07/20 Python
python Qt5实现窗体跟踪鼠标移动
2019/12/13 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
Python反爬虫伪装浏览器进行爬虫
2020/02/28 Python
python 子类调用父类的构造函数实例
2020/03/12 Python
Roxy俄罗斯官方网站:冲浪和滑雪板的一切
2020/06/20 全球购物
主治医师岗位职责
2013/12/10 职场文书
党的群众路线教育实践方案
2014/05/11 职场文书
大学生英文求职信范文
2015/03/19 职场文书
给老师的保证书怎么写
2015/05/09 职场文书
Java中Quartz高可用定时任务快速入门
2022/04/03 Java/Android