小程序模板網(wǎng)

微信小程序事件綁定

發(fā)布時(shí)間:2021-06-22 11:52 所屬欄目:小程序開(kāi)發(fā)教程

事件類別:

tap:點(diǎn)擊事件;

longtap:長(zhǎng)按事件;

touchstart:觸摸開(kāi)始;

touchend:觸摸結(jié)束;

touchcansce:取消觸摸;

事件綁定:

bind綁定;

catch綁定;(能阻止事件冒泡)
mut-bind   互斥事件綁定
 

普通事件綁定

事件綁定的寫法類似于組件的屬性,如:

<view bindtap="handleTap">
    Click here!
</view>

如果用戶點(diǎn)擊這個(gè) view ,則頁(yè)面的 handleTap 會(huì)被調(diào)用。

事件綁定函數(shù)可以是一個(gè)數(shù)據(jù)綁定,如:

<view bindtap="{{ handlerName }}">
    Click here!
</view>

此時(shí),頁(yè)面的 this.data.handlerName 必須是一個(gè)字符串,指定事件處理函數(shù)名;如果它是個(gè)空字符串,則這個(gè)綁定會(huì)失效(可以利用這個(gè)特性來(lái)暫時(shí)禁用一些事件)。

自基礎(chǔ)庫(kù)版本 1.5.0 起,在大多數(shù)組件和自定義組件中, bind 后可以緊跟一個(gè)冒號(hào),其含義不變,如 bind:tap 。基礎(chǔ)庫(kù)版本 2.8.1 起,在所有組件中開(kāi)始提供這個(gè)支持。

綁定并阻止事件冒泡

除 bind 外,也可以用 catch 來(lái)綁定事件。與 bind 不同, catch 會(huì)阻止事件向上冒泡。

例如在下邊這個(gè)例子中,點(diǎn)擊 inner view 會(huì)先后調(diào)用handleTap3和handleTap2(因?yàn)閠ap事件會(huì)冒泡到 middle view,而 middle view 阻止了 tap 事件冒泡,不再向父節(jié)點(diǎn)傳遞),點(diǎn)擊 middle view 會(huì)觸發(fā)handleTap2,點(diǎn)擊 outer view 會(huì)觸發(fā)handleTap1。

<view id="outer" bindtap="handleTap1">
  outer view
  <view id="middle" catchtap="handleTap2">
    middle view
    <view id="inner" bindtap="handleTap3">
      inner view
    </view>
  </view>
</view>

互斥事件綁定

自基礎(chǔ)庫(kù)版本 2.8.2 起,除 bind 和 catch 外,還可以使用 mut-bind 來(lái)綁定事件。一個(gè) mut-bind 觸發(fā)后,如果事件冒泡到其他節(jié)點(diǎn)上,其他節(jié)點(diǎn)上的 mut-bind 綁定函數(shù)不會(huì)被觸發(fā),但 bind 綁定函數(shù)和 catch 綁定函數(shù)依舊會(huì)被觸發(fā)。

換而言之,所有 mut-bind 是“互斥”的,只會(huì)有其中一個(gè)綁定函數(shù)被觸發(fā)。同時(shí),它完全不影響 bind 和 catch 的綁定效果。

例如在下邊這個(gè)例子中,點(diǎn)擊 inner view 會(huì)先后調(diào)用 handleTap3 和 handleTap2 ,點(diǎn)擊 middle view 會(huì)調(diào)用 handleTap2 和 handleTap1 。

<view id="outer" mut-bind:tap="handleTap1">
  outer view
  <view id="middle" bindtap="handleTap2">
    middle view
    <view id="inner" mut-bind:tap="handleTap3">
      inner view
    </view>
  </view>
</view>


易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開(kāi)源 碼云倉(cāng)庫(kù):starfork
本文地址:http://www.u-renovate.com/wxmini/doc/course/26657.html 復(fù)制鏈接 如需定制請(qǐng)聯(lián)系易優(yōu)客服咨詢:800182392 點(diǎn)擊咨詢
QQ在線咨詢
AI智能客服 ×