小程序中的冒泡事件与捕获事件

本文介绍了小程序中bind与catch事件绑定的区别:bind绑定不会阻止事件冒泡,而catch绑定则会阻止事件冒泡。同时,文章还讲解了如何使用capture-bind来实现事件捕获。

bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡。

如在下边这个例子中,点击 inner view 会先后调用handleTap3handleTap2(因为tap事件会冒泡到 middle view,而 middle view 阻止了 tap 事件冒泡,不再向父节点传递),点击 middle view 会触发handleTap2,点击 outer view 会触发handleTap1

 

<view id="outer" bindtap="handleTap1">
  outer view
  <view id="middle" catchtap="handleTap2">
    middle view
    <view id="inner" bindtap="handleTap3">
      inner view
    </view>
  </view>
</view>

事件的捕获:

capture-bind开头的事件,可以实现捕获事件。

注意:小程序官方文档的例子是capture-bind:touchstart, 这个操作是手指触摸动作开始,在有滑动效果的地方,会与滑动事件引起冲突。

对于capture-bind:tap 才是我们经常使用的点击事件。

具体要使用的事件可以看下图。都是以capture-bind开头就可以实现

当然:这个具体的一些使用建议参看小程序的官方文档。

 

在微信小程序开发中,事件捕获冒泡是指事件在不同元素之间传递的过程。事件捕获是从外层容器向目标元素触发的过程,而事件冒泡则是从目标元素向外层容器传递的过程。 具体来说,事件捕获是指事件从最外层容器开始逐层向内层元素传递,直到达到目标元素。这意味着事件在触发时会先经过最外层容器,然后逐级传递到目标元素。在微信小程序中,可以通过在捕获阶段监听事件来实现。 而事件冒泡则是指事件从目标元素开始向外层容器传递的过程。在事件冒泡阶段,事件会从目标元素开始向上冒泡,逐级传递到最外层容器。 在微信小程序开发中,我们可以通过在事件处理函数中阻止事件冒泡,即使用`event.stopPropagation()`方法,来阻止事件继续向上冒泡传递。这样可以实现事件只在目标元素上触发,不再向外层传递。 总结起来,事件捕获冒泡是微信小程序事件传递的两种方式。事件捕获是从外层向内层传递,而事件冒泡则是从内层向外层传递。在事件处理中,我们可以根据需求选择使用事件捕获事件冒泡来处理事件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [微信小程序开发中的事件捕获冒泡](https://blog.youkuaiyun.com/zebghfv/article/details/118546240)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [微信小程序事件流原理解析](https://download.youkuaiyun.com/download/weixin_38655284/14014768)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [微信小程序事件冒泡捕获](https://blog.youkuaiyun.com/severestcritic/article/details/120938992)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值