wxxcx文檔筆記——框架/事件/事件的捕獲階段
阿新 • • 發佈:2018-04-14
取消 觸發 mini QQ hand 觸摸 順序 bind 階段 、
事件的捕獲階段
自基礎庫版本 1.5.0 起,觸摸類事件支持捕獲階段。捕獲階段位於冒泡階段之前,且在捕獲階段中,事件到達節點的順序與冒泡階段恰好相反。需要在捕獲階段監聽事件時,可以采用capture-bind
、capture-catch
關鍵字,後者將中斷捕獲階段和取消冒泡階段。
在下面的代碼中,點擊 inner view 會先後調用handleTap2
、handleTap4
、handleTap3
、handleTap1
。
<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-bind
、capture-catch
關鍵字,而捕獲階段又是從父節點往裏走,所以順序為handleTap2
、handleTap4
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文檔筆記——框架/事件/事件的捕獲階段