微信小程序—事件冒泡/阻止事件冒泡(bindtap/catchtap)(图文)

微信小程序—事件冒泡/阻止事件冒泡(bindtap/catchtap)

事件冒泡
嵌套关系,每个都有一个类名一个点击事件
1、


  view1
  
    view2
    
      view3
    
  

微信小程序—事件冒泡/阻止事件冒泡(bindtap/catchtap)(图文)_第1张图片
2、写css样式

.view1{
  width: 100%;
  height: 500rpx;
  background: red;
}
.view2{
  width: 100%;
  height: 300rpx;
  background: yellow;
  margin-top: 50rpx;
}
.view3{
  width: 100%;
  height: 100rpx;
  background: blue;
  margin-top: 50rpx;
}

微信小程序—事件冒泡/阻止事件冒泡(bindtap/catchtap)(图文)_第2张图片
效果如下:
微信小程序—事件冒泡/阻止事件冒泡(bindtap/catchtap)(图文)_第3张图片
3、在js写事件

view1: function (e) {
    console.log('view1', e)
  },
  view2: function (e) {
    console.log('view2',e)
  },
  view3: function (e) {
    console.log('view3',e)
  },

微信小程序—事件冒泡/阻止事件冒泡(bindtap/catchtap)(图文)_第4张图片
点击view3,最内侧的,看console.log
微信小程序—事件冒泡/阻止事件冒泡(bindtap/catchtap)(图文)_第5张图片
三个点击事件都被触发了,这就是事件冒泡

阻止事件冒泡
把bindtap换成catchtap就是在拦截事件冒泡,


  view1
  
    view2
    
      view3
    
  

微信小程序—事件冒泡/阻止事件冒泡(bindtap/catchtap)(图文)_第6张图片
我只换了view2,看一下点击view3的效果
微信小程序—事件冒泡/阻止事件冒泡(bindtap/catchtap)(图文)_第7张图片
到了view2就被拦截了,不会往外冒泡到view1,如果想阻止冒泡,全部换成bindtap即可
微信小程序—事件冒泡/阻止事件冒泡(bindtap/catchtap)(图文)_第8张图片

你可能感兴趣的:(微信小程序)