事件分为冒泡事件和非冒泡事件

    ➢冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递
    ➢非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递

    冒泡事件列表如表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所示。

    1. <view id="outer" bindTap="handleTap1">
    2. outer view
    3. <view id='middle' catchTap="handleTap2">
    4. middle view
    5. <view id="inner" bindTap="handleTap3">inner view</view>
    6. </view>
    7. </view>

    在示例2-14中,单击inner view会先后调用handleTap3和handleTap2(因为tap事件会冒泡到middle view,而middle view阻止了tap事件冒泡,不再向父节点传递),单击middle view会触发handleTap2,单击outer view会触发handleTap1