事件分为冒泡事件和非冒泡事件
➢冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递
➢非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递
冒泡事件列表如表2.9所示
| 类型 | 触发条件 |
|---|---|
| touchStart | 手指触摸动作开始 |
| touchMove | 手指触摸后移动 |
| touchCancel | 手指触摸动作被打断,如来电提醒,弹出窗口 |
| touchEnd | 手指触摸动作结束 |
| tap | 手指触摸后马上离开 |
| longPress | 手指触摸后,超过350ms再离开,如果制定了事件回调函数,并触发了这个事件,tap事件将不被触发 |
| longTap | 手指触摸后,超过350ms再离开(体检使用longPress事件代替) |
| transitionEnd | 会在WXSS transition或wx.creatAnimation动画结束后触发 |
| animationStart | 会在WXSS animation 动画开始时触发 |
| animationIteratino | 会在WXSS animation一次迭代结束时触发 |
| animationEnd | 会在一个WXSS animation动画完成时触发 |
| touchforceChange | 支持3D Touch的iphone设备,重按时会触发 |
除表2.9外的其他组件自定义事件(如无特殊声明)都是非冒泡事件,如
- 的submit事件
- 的input事件
的scroll事件
使用bind绑定事件不会阻止冒泡事件向上冒泡,如果要阻止事件冒泡,可以使用catch绑定事件,如示例2-14所示。
<view id="outer" bindTap="handleTap1">outer view<view id='middle' catchTap="handleTap2">middle view<view id="inner" bindTap="handleTap3">inner view</view></view></view>
在示例2-14中,单击inner view会先后调用handleTap3和handleTap2(因为tap事件会冒泡到middle view,而middle view阻止了tap事件冒泡,不再向父节点传递),单击middle view会触发handleTap2,单击outer view会触发handleTap1
