1. 程式人生 > >wxxcx文檔筆記——框架/事件/事件的捕獲階段

wxxcx文檔筆記——框架/事件/事件的捕獲階段

取消 觸發 mini QQ hand 觸摸 順序 bind 階段

事件的捕獲階段

自基礎庫版本 1.5.0 起,觸摸類事件支持捕獲階段。捕獲階段位於冒泡階段之前,且在捕獲階段中,事件到達節點的順序與冒泡階段恰好相反。需要在捕獲階段監聽事件時,可以采用capture-bindcapture-catch關鍵字,後者將中斷捕獲階段和取消冒泡階段。

在下面的代碼中,點擊 inner view 會先後調用handleTap2handleTap4handleTap3handleTap1

<view id="outer" bind:touchstart="handleTap1" capture-bind:touchstart="handleTap2">
outer view <view id="inner" bind:touchstart="handleTap3" capture-bind:touchstart="handleTap4"> inner view </view> </view>

調用順序分析:

  捕獲階段位於冒泡階段之前,所以先看capture-bindcapture-catch關鍵字,而捕獲階段又是從父節點往裏走,所以順序為handleTap2handleTap4

  capture排序完成後再比較冒泡階段的順序,而冒泡階段是從子節點往外擴展,所以接下來的順序是handleTap3

handleTap1。

如果將上面代碼中的第一個capture-bind改為capture-catch,將只觸發handleTap2

<view id="outer" bind:touchstart="handleTap1" capture-catch:touchstart="handleTap2">
  outer view
  <view id="inner" bind:touchstart="handleTap3" capture-bind:touchstart="handleTap4">
    inner view
  </view>
</
view>

wxxcx文檔筆記——框架/事件/事件的捕獲階段