微信小程序bindtap點擊事件與事件冒泡

原文連接:https://www.cnblogs.com/lhm166/articles/9947383.htmlhtml

事件冒泡就是指嵌套事件發生,若是多層標籤嵌套, 裏層事件發生後, 其外層會相應發生, 如:函數

<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就好了。spa

catchtap只會觸發自身的點擊事件,會阻斷自身的冒泡行爲,能夠理解爲,無論是否是自身觸發的點擊行爲, 傳到我這裏, 我就將它阻斷(再也不向上傳遞)。如:code

 <view bindtap='handout'>
    outer
    <view catchtap='handmiddle'>
      middle
      <view bindtap='handinner'>inner</view>
    </view>
  </view>

點擊inner, 執行的是handinner和handmiddle兩個函數,由於midd的catchtap阻止了事件冒泡行爲,因此outer不會執行htm

相關文章
相關標籤/搜索