什么时候会产生事件呢?
小程序需要经常
和用户进行某种交互
,比如点击界面上的某个按钮或者区域,比如滑动了某个区域;事件是视图层到逻辑层的通讯方式;
事件可以将用户的行为反馈到逻辑层进行处理;
事件可以绑定在组件上,当触发事件时,就会执行逻辑层中对应的事件处理函数;
事件对象可以携带额外信息,如 id, dataset, touches;
事件时如何处理呢?
事件是通过bind/catch这个属性绑定在组件上的(和普通的属性写法很相似, 以key=“value”形式);
key以bind或catch开头, 从1.5.0版本开始, 可以在bind和catch后加上一个冒号;
同时在当前页面的Page构造器中定义对应的事件处理函数, 如果没有对应的函数, 触发事件时会报错;
比如当用户点击该button区域时,达到触发条件生成事件tap,该事件处理函数会被执行,同时还会收到一个
事件对象event
。
事件的基本使用
- 在组件中绑定一个事件处理函数。
如
bindtap
,表示当用户点击该组件的时候会在该页面对应的 Page 中找到相应的事件处理函数。
按钮
// index.js
// 在对应的 Page 中找到相应的事件处理函数
Page({
onBtnTap() {
console.log(“按钮点击”);
}
})
- 当某个事件触发时, 在相应的 Page 中对应的事件处理函数, 会产生一个事件对象, 并且这个对象被传入到该回调函数中,参数是event。
// index.js
Page({
onBtnTap(event) {
console.log(event);
}
})
- console.log打印出来的event大致信息如下
{
“type”:“tap”,
“timeStamp”:895,
“target”: {
“id”: “tapTest”,
“dataset”: {
“hi”:“Weixin”
}
},
“currentTarget”: {
“id”: “