事件冒泡就是指嵌套事件发生
微信小程序点击事件一般使用bindtap触发
如果多层标签嵌套, 里层事件发生后, 其外层会相应发生, 如:
//wxml:
<view bindtap='handout'>
outer
<view bindtap='handmiddle'>
middle
<view bindtap='handinner'>inner</view>
</view>
</view>
//js
handout: function () {
console.log("out");
},
handmiddle: function () {
console.log("middle");
},
handinner: function () {
console.log("inner");
}
点击inner三个事件都执行,
点击middlek执行handmiddle和handout,
点击out只执行handout。
阻止事件冒泡行为: 将bindtap改为catchtap就行了, 只会触发自身的点击事件
<view bindtap='handout'>
outer
<view catchtap='handmiddle'>
middle
<view bindtap='handinner'>inner</view>
</view>
</view>
如上点击inner, 执行的是handinner和handmiddle两个函数
需要理解是, 它阻断自身的冒泡行为,
不管是不是自身触发的点击行为, 传到我这里, 我就将它阻断(不再向上传递)