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


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 相关文章推荐
基于jquery的横向滚动条(滑动条)
Feb 24 Javascript
javascript之bind使用介绍
Oct 09 Javascript
JS获取月的最后一天与JS得到一个月份最大天数的实例代码
Dec 16 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
May 28 Javascript
js实现从中间开始往上下展开网页窗口的方法
Mar 02 Javascript
JavaScript删除数组元素的方法
Mar 20 Javascript
javascript自定义右键弹出菜单实现方法
May 25 Javascript
JavaScript 闭包详细介绍
Sep 28 Javascript
react实现pure render时bind(this)隐患需注意!
Mar 09 Javascript
老生常谈js-react组件生命周期
May 02 Javascript
JavaScript中arguments和this对象用法分析
Aug 08 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
Aug 22 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
法国:浪漫之都的咖啡文化
2021/03/03 咖啡文化
php实现留言板功能(代码详解)
2017/03/28 PHP
在Laravel中使用DataTables插件的方法
2018/05/29 PHP
自己的js工具 Event封装
2009/08/21 Javascript
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
javascript跑马灯悬停放大效果实现代码
2012/12/12 Javascript
jquery中的查找parents与closest方法之间的区别
2013/12/02 Javascript
jQuery中多个元素的Hover事件解决方案
2014/06/12 Javascript
浅谈JS中String()与 .toString()的区别
2016/10/20 Javascript
原生js实现倒计时--2018
2017/02/21 Javascript
JS实现两周内自动登录功能
2017/03/23 Javascript
nodejs个人博客开发第四步 数据模型
2017/04/12 NodeJs
利用Angular.js编写公共提示模块的方法教程
2017/05/28 Javascript
angular动态表单制作
2018/02/23 Javascript
React 使用recharts实现散点地图的示例代码
2018/12/07 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
vue项目接口域名动态获取操作
2020/08/13 Javascript
[01:20:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第四场 8.26
2018/08/30 DOTA
Python第三方库的安装方法总结
2016/06/06 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
用python3 urllib破解有道翻译反爬虫机制详解
2019/08/14 Python
基于FME使用Python过程图解
2020/05/13 Python
小结Python的反射机制
2020/09/28 Python
巴西网上药房:onofre
2016/11/21 全球购物
巴西宠物商店:Cobasi
2019/04/19 全球购物
C语言如何决定使用那种整数类型
2016/11/26 面试题
银行先进个人事迹材料
2014/05/11 职场文书
党性分析材料格式
2014/12/19 职场文书
小班上学期幼儿评语
2014/12/30 职场文书
给客户的感谢信
2015/01/21 职场文书
学习保证书怎么写
2015/02/26 职场文书
2015年统战工作总结
2015/05/19 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server
Python如何识别银行卡卡号?
2021/06/10 Python
AJAX实现省市县三级联动效果
2021/10/16 Javascript
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
2022/01/18 HTML / CSS