微信小程序:冒泡事件及其阻止
2017-12-08 21:07
537 查看
事件的类别分为几种:
点击事件:tap
长按事件:longtap
触摸事件:touchstart; touchend;touchcancel;touchmove
其他:input;submit....
其中前三类是冒泡事件,其他的称为非冒泡事件。
写一个简单的例子,代码就不一一贴出来了,WXML的文件如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201712/5ec7bf5b7b02c7772d3f641a1ca4862c)
当我点击最内层的蓝色方框的时候,打印的结果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201712/f49dc1e7401ff6b27f5150ebad7c2afb)
冒泡事件的机制是先打印点击的蓝色,也就是最内层,然后依次打印第二层和第三层。假设点击黄色层,会依次打印出黄色和红色。点击红色时只打印红色。
但是也可以阻止冒泡事件的发生,其实很简单,直接把bindtap改为catchtap即可。
这样你点击最内层的蓝色,只会打印蓝色而不会打印出黄色和红色了。但是点击黄色还是会打印黄色和红色,这个时候再把黄色页面的bindtap改成catchtap就可以了。
点击事件: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覆盖是无效的。
相关文章推荐
- 微信小程序阻止冒泡事件
- 微信小程序如何阻止事件冒泡
- JQuery中阻止事件冒泡方式及其区别
- 小程序catch阻止事件冒泡
- JQuery中阻止事件冒泡方式及其区别
- JQuery中阻止事件冒泡方式及其区别
- jquery学习(三): JQuery中阻止事件冒泡方式及其区别
- JQuery中阻止事件冒泡方式及其区别
- 微信小程序页面跳转事件绑定/冒泡,非冒泡事件
- jQuery中阻止事件冒泡方式及其区别
- 原声js 的兼容(屏幕尺寸、事件处理程序、阻止事件冒泡、事件目标等等)
- 微信小程序 事件冒泡(十二)
- 微信小程序,关于navigator子元素绑定事件,阻止navigator跳转
- JQuery中阻止事件冒泡方式及其区别
- JQuery中阻止事件冒泡方式及其区别
- 解决微信小程序冒泡事件
- JQuery中阻止事件冒泡方式及其区别
- 微信小程序 事件冒泡,bangtap,catchtap事件绑定
- JQuery中阻止事件冒泡方式及其区别
- javascript阻止事件冒泡的兼容写法及其相关示例