冒泡事件与非冒泡事件(小程序)

本文探讨了在前端开发中,不同视图组件间的事件触发机制。通过具体实例,展示了当用户点击特定视图时,如何按层级触发事件,以及这些事件如何影响父级和兄弟组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章来自:源码在线https://www.shengli.me/wxxcx/358.html

 

 

 

 

 

效果图:

 

1.jpg

 

点击view1

 

1.jpg

点击view2会触发父元素:

 

2.png

点击view3,会触发view2,然后再触发view3

 

3.png

 

### 微信小程序中的冒泡点击事件 在微信小程序中,默认情况下部分组件的事件会触发冒泡行为,而另一些则不会。对于希望利用或控制这种冒泡机制的情况,开发者可以采取特定措施来管理这些事件。 当涉及到多层嵌套组件之间的点击事件传播时,如果父级容器绑定了`bindtap`或其他形式的点击监听器,则子元素触发相应操作的同时也会向上传播至其祖先节点,除非特别指明阻止该过程的发生[^2]。 为了展示如何有效地处理并模拟一个简单的冒泡点击场景,在下面给出了一段代码片段作为实例说明: ```html <!-- WXML --> <view class="container" bindtap="handleContainerTap"> 容器区域 <button type="primary" bindtap="handleButtonTap">按钮</button> </view> ``` ```javascript // JS Page({ handleButtonTap(event){ console.log('按钮被点击'); // 不执行event.stopPropagation();允许事件继续向上冒泡 }, handleContainerTap(){ console.log('容器被点击'); } }) ``` 上述例子展示了基本的冒泡流程:当用户触碰页面内的按钮时,不仅会激活针对此按钮设置的动作处理器(`handleButtonTap`),而且由于未调用`stopPropagation()`方法中断传递路径,因此后续还会激发所属视图区块上的响应函数(`handleContainerTap`)[^1]。 值得注意的是,并不是所有的内置组件都支持默认的冒泡特性;例如表单提交、输入框变化以及滚动条移动等均属于非冒泡类型的活动。这意味着对于这类特殊情况下的交互设计需额外留意文档指导以确保预期效果得以实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值