微信小程序冒泡事件及其阻止方法實(shí)例分析
本文實(shí)例講述了微信小程序冒泡事件及其阻止方法。分享給大家供大家參考,具體如下:
事件的類別分為幾種:
- 點(diǎn)擊事件:tap
- 長按事件:longtap
- 觸摸事件:touchstart; touchend;touchcancel;touchmove
- 其他:input;submit....
其中前三類是冒泡事件,其他的稱為非冒泡事件。
寫一個簡單的例子,代碼就不一一貼出來了,WXML的文件如下:
<view class='redview' bindtap='redclick'> 紅色 <view class='yellowview' bindtap='yellowclick'> 黃色 <view class='blueview' bindtap='blueclick'> 藍(lán)色 </view> </view> </view>
效果如圖:

當(dāng)我點(diǎn)擊最內(nèi)層的藍(lán)色方框的時候,打印的結(jié)果如下:

冒泡事件的機(jī)制是先打印點(diǎn)擊的藍(lán)色,也就是最內(nèi)層,然后依次打印第二層和第三層。假設(shè)點(diǎn)擊黃色層,會依次打印出黃色和紅色。點(diǎn)擊紅色時只打印紅色。
但是也可以阻止冒泡事件的發(fā)生,其實(shí)很簡單,直接把bindtap改為catchtap即可。
<view class='redview' bindtap='redclick'> 紅色 <view class='yellowview' bindtap='yellowclick'> 黃色 <view class='blueview' catchtap='blueclick'> 藍(lán)色 </view> </view> </view>
這樣你點(diǎn)擊最內(nèi)層的藍(lán)色,只會打印藍(lán)色而不會打印出黃色和紅色了。但是點(diǎn)擊黃色還是會打印黃色和紅色,這個時候再把黃色頁面的bindtap改成catchtap就可以了。
友情提示:有一部分標(biāo)簽是默認(rèn)在最上層的,比如video,想在video上放一個view然后設(shè)置
catchtap將video覆蓋是無效的。
希望本文所述對大家微信小程序開發(fā)有所幫助。
相關(guān)文章
Express與NodeJs創(chuàng)建服務(wù)器的兩種方法
本文主要介紹了NodeJs創(chuàng)建Web服務(wù)器;Express創(chuàng)建Web服務(wù)器的兩種方法,具有一定的參考價值,下面跟著小編一起來看下吧2017-02-02
JavaScript Serializer序列化時間處理示例
JavaScriptSerializer序列化時間后會把時間序列化成N進(jìn)制的鬼數(shù)據(jù) ,下面有個示例,需要的朋友可以了解下2014-07-07
JS小功能(onmouseover實(shí)現(xiàn)選擇月份)實(shí)例代碼
這篇文章主要介紹了onmouseover實(shí)現(xiàn)選擇月份實(shí)例代碼,有需要的朋友可以參考一下2013-11-11
淺談JavaScript構(gòu)造樹形結(jié)構(gòu)的一種高效算法
這篇文章主要介紹了JavaScript構(gòu)造樹形結(jié)構(gòu)的一種高效算法,對算法感興趣的同學(xué),可以參考下2021-05-05

