微信小程序事件绑定
概述
事件是视图层到逻辑层的通讯方式,可以将用户的行为反馈到逻辑层进行处理
事件分为冒泡事件和非冒泡事件:
- 冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递(触发父节点的事件)
- 非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递
代码实现
简单事件绑定
页面wxml代码,text标签实时显示num的值,两个按钮分别绑定
num加1
和num减1
事件
1 | <view style="text-align: center;"> |
js代码
1 | // pages/demo/demo.js |
效果
冒泡事件
bindtap会让事件向父节点冒泡
页面wxml代码,outer是middle的父节点,middle是inner的父节点
1 | <text style="color: red;">bindtap冒泡</text> |
js代码
1 | handout: function () { |
效果
分析
- 点击outer时,只会触发它本身的事件handout事件,即:只触发了handout事件
- 点击middle时,触发它本身的事件handmiddle事件后,向其父节点outer冒泡触发handout事件,即:依次触发了handmiddle、handout事件
- 点击inner时,触发它本身的事件handinner事件后,向其父节点middle冒泡触发handmiddle事件(相当于点击了middle),最后触发了handout事件,即:依次触发了handinner、handmiddle、handout事件
非冒泡事件
catchtap会阻止事件向父节点冒泡
页面wxml代码
1 | <text style="color: red;">catchtap非冒泡</text> |
js代码
和上面一样
效果
分析
因为catchtap是阻止向父节点冒泡的,所以点击outer、middle、inner都只会触发自身的事件,catchtap的事件可以被子节点触发
PS.
微信开发文档地址:事件 | 微信开放文档 (qq.com)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LeDao's Blog!
评论