小程序点击事件

it2025-11-06  12

<view bindtap='handout'> outer <view bindtap='handmiddle'> middle <view bindtap='handinner'>inner</view> </view> </view> handout: function () {   console.log("out"); }, handmiddle: function () {   console.log("middle"); }, handinner: function () {   console.log("inner"); }

 点击inner三个事件都执行, 点击middlek执行handmiddle和handout, 点击out只执行handout 阻止事件冒泡行为: 将bindtap改为catchtap就行了, 只会触发自身的点击事件

简单的理解就是    点击3   而3肯定包含在2中  同时2包含在1中   所以点击inner肯定会 去执行  middle    outer事件

反过来想  你点击1  而1的位置并不在2中   同样也不再3中  所以点击outer未必执行 middle 和 inner 时间 

感觉有点中学学的 充分不必要条件和必要不充分条件相似

 

想要   分别执行就要将bindtap改成catchtap,  它只会触发自身的点击事件    阻止事件向上传递

 

结论  bindtap不能阻止事件冒泡

         catchtap能阻止事件冒泡

最新回复(0)