一、 事件
什么是事件
- 事件是视图层到逻辑层的通讯方式。
- 事件可以将用户的行为反馈到逻辑层进行处理。
- 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。
- 事件对象可以携带额外信息,如 id, dataset, touches。
事件分类
-
事件分为冒泡事件和非冒泡事件:
- 冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递。(eg:
bindtap
) - 非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递。(eg:
catchtap
)
- 冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递。(eg:
-
普通事件绑定(冒泡事件)————事件绑定的写法类似于组件的属性,如:
<view bindtap="handleTap"> Click here! </view>
如果用户点击这个 view ,则页面的 handleTap 会被调用。
-
绑定并阻止事件冒泡————除 bind 外,也可以用 catch 来绑定事件。
与 bind 不同,catch 会阻止事件向上冒泡
。例如在下边这个例子中,点击 inner view 会先后调用handleTap3和handleTap2 (因为tap事件会冒泡到 middle view,而 middle view 阻止了 tap 事件冒泡,不再向父节点传递), 点击 middle view 会触发handleTap2,点击 outer view 会触发handleTap1。
<view id="outer" bindtap="handleTap1"> outer view <view id="middle<