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


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 相关文章推荐
JS小框架 fly javascript framework
Nov 26 Javascript
Javascript的各种节点操作实例演示代码
Jun 27 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
Oct 17 Javascript
JS+CSS实现下拉列表框美化效果(3款)
Aug 15 Javascript
javascript HTML5 canvas实现打砖块游戏
Jun 18 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
Feb 16 Javascript
基于JavaScript实现无缝滚动效果
Jul 21 Javascript
jQuery实现可兼容IE6的遮罩功能详解
Sep 19 jQuery
微信小程序 POST请求的实例详解
Sep 29 Javascript
vue.js+element-ui动态配置菜单的实例
Sep 07 Javascript
angular6的响应式表单的实现
Oct 10 Javascript
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
Mar 17 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
smarty内置函数capture用法分析
2015/01/22 PHP
WordPress迁移时一些常见问题的解决方法整理
2015/11/24 PHP
基于PHP实现简单的随机抽奖小程序
2016/01/05 PHP
Laravel的throttle中间件失效问题解决方法
2016/10/09 PHP
PHP时间函数使用详解
2019/03/21 PHP
laravel清除视图缓存的代码
2019/10/23 PHP
JavaScript 注册事件代码
2011/01/27 Javascript
深入document.write()与HTML4.01的非成对标签的详解
2013/05/08 Javascript
JS实现的省份级联实例代码
2013/06/24 Javascript
js中各种类型的变量在if条件中是true还是false
2014/07/16 Javascript
javascript实现模拟时钟的方法
2015/05/13 Javascript
AngularJS实现全选反选功能
2015/12/08 Javascript
无循环 JavaScript(map、reduce、filter和find)
2017/04/08 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
关于react-router的几种配置方式详解
2017/07/24 Javascript
React 无状态组件(Stateless Component) 与高阶组件
2018/08/14 Javascript
JS事件绑定的常用方式实例总结
2019/03/02 Javascript
详解auto-vue-file:一个自动创建vue组件的包
2019/04/26 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
2019/06/05 Javascript
vue router 跳转时打开新页面的示例方法
2019/07/28 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
2019/08/26 Javascript
JS实现简易计算器
2020/02/14 Javascript
介绍Python中的__future__模块
2015/04/27 Python
Python根据指定日期计算后n天,前n天是哪一天的方法
2018/05/29 Python
python广度优先搜索得到两点间最短路径
2019/01/17 Python
python实现俄罗斯方块游戏(改进版)
2020/03/13 Python
python datetime处理时间小结
2020/04/16 Python
Python 如何调试程序崩溃错误
2020/08/03 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
如何避免常见的6种HTML5错误用法
2017/11/06 HTML / CSS
迪卡侬波兰体育用品商店:Decathlon波兰
2020/03/31 全球购物
生产管理的三大手法
2013/11/11 职场文书
新闻记者个人求职的自我评价
2013/11/28 职场文书
关于迟到的检讨书
2014/01/26 职场文书
python playwrigh框架入门安装使用
2022/07/23 Python