自基础库版本
2.8.2
起,除bind
和catch
外,还可以使用mut-bind
来绑定事件。一个mut-bind
触发后,如果事件冒泡到其他节点上,其他节点上的mut-bind
绑定函数不会被触发,但bind
绑定函数和catch
绑定函数依旧会被触发。
官网例子:
点击 inner view 会先后调用 handleTap3 和 handleTap2 ,点击 middle view 会调用 handleTap2 和 handleTap1 。
html
<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>
用来实现下面这个效果(···
点击展开点击收起,点击其它任意地方收起)刚刚好,额,实际上用catchtap
阻止冒泡也可以
html
<view id="container" mut-bind:tap="{{menuStatus?'menuToggle':''}}">
<view id="menuBox" mut-bind:tap="menuToggle" >
<view id="menuDot">
···
</view>
<view id="menu-list" hidden="{{!menuStatus}}"></view>
</view>
</view>
js
Page({
data: {
menuStatus: true
},
menuToggle() {
this.setData({
menuStatus: !this.data.menuStatus
})
}
})