小程式的冒泡事件
阿新 • • 發佈:2018-11-22
冒泡事件:當一個元件上的事件被觸發後,該事件會向父節點傳遞。
非冒泡事件:當一個元件上的事件被觸發後,該事件不會向父節點傳遞。
像是下面一段程式碼
<view class="outer" bindtap='outerFun'> outer <view class='middle' bindtap='middleFun'> middle <view class='inner' bindtap='innerFun'> inner </view> </view> </view>
//js
outerFun:function(){
console.log("outer");
},
middleFun:function(){
console.log("middle");
},
innerFun:function(){
console.log("inner");
},
當我點選inner的時候,會依次打印出:
inner
middle
outer
當我點選middle時會打印出:
middle
outer
這就是事件的向上冒泡
bind的事件繫結不會阻止事件冒泡
catch的事件繫結會阻止事件冒泡
所以當我的inner view用catch事件繫結的時候,點選inner時就只會觸發inner的繫結tap方法
例如,當我的頁面要彈出一個廣告且有背景遮罩的時候,點選廣告圖片會進入廣告詳情頁,點選遮罩會關閉廣告,這是對於廣告部分的tap事件就需要用catch繫結