小程序点击事件

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

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页