<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能阻止事件冒泡