1. 程式人生 > >小程式的冒泡事件

小程式的冒泡事件

冒泡事件:當一個元件上的事件被觸發後,該事件會向父節點傳遞。
非冒泡事件:當一個元件上的事件被觸發後,該事件不會向父節點傳遞。

像是下面一段程式碼

<view class="outer" bindtap='outerFun'>
  outer  
  <view class='middle' bindtap='middleFun'>
      middle   
      <view class='inner' bindtap='innerFun'>
    	  inner
      </view>
  </view>
</view>
//js
  outerFun:function(){ 
     console.log("outer");  
   },  
  middleFun:function(){  
    console.log("middle"); 
 }, 
  innerFun:function(){  
    console.log("inner");  
},

當我點選inner的時候,會依次打印出:

inner
middle
outer

當我點選middle時會打印出:

middle
outer

這就是事件的向上冒泡

bind的事件繫結不會阻止事件冒泡
catch的事件繫結會阻止事件冒泡

所以當我的inner view用catch事件繫結的時候,點選inner時就只會觸發inner的繫結tap方法

例如,當我的頁面要彈出一個廣告且有背景遮罩的時候,點選廣告圖片會進入廣告詳情頁,點選遮罩會關閉廣告,這是對於廣告部分的tap事件就需要用catch繫結