什么是事件
- 事件是视图层到逻辑层的通讯方式。
- 事件可以将用户的行为反馈到逻辑层进行处理。
- 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。
- 事件对象可以携带额外信息,如 id, dataset, touches。
常见事件
- tap:手指触摸后马上离开
- longpress:手指触摸后,超过350ms再离开,如果指定了事件回调函数并触发了这个事件,tap事件将不被触发
- touchstart:手指触摸动作开始
- touchmove:手指触摸后移动
- touchcancel:手指触摸动作被打断,如来电提醒,弹窗
- touchend:手指触摸动作结束
如何绑定事件
bind:绑定冒泡事件
capture-bind:绑定捕获事件
catch:阻止冒泡事件
capture-catch:阻止捕获事件
绑定事件示例:
index.wxml:
<view bind:tap="onTap">我是bind</view>
<view capture-bind:tap="onCaptureBind">我是capture-bind</view>
<view catch:tap="onCatch">我是catch</view>
<view capture-catch:tap="onCaptureCatch">我是capture-catch</view>
index.js:
onTap: function(){
console.log('onTap call');
},
onCaptureBind: function(){
console.log('onCaptureBind call');
},
onCatch: function(){
console.log('onCatch call');
},
onCaptureCatch: function(){
console.log('onCaptureCatch call');
},
常见事件示例:
index.wxml:
<view bind:tap="onTap">手指触摸后马上离开</view>
<view bind:longpress="onLongpress">手指触摸后,超过350ms再离开,如果指定了事件回调函数并触发了这个事件,tap事件将不被触发</view>
<view bind:touchstart="onTouchstart">手指触摸动作开始</view>
<view bind:touchmove="onTouchmove">手指触摸后移动</view>
<view bind:touchend="onTouchend">手指触摸动作结束</view>
index.js:
onTap: function(){
console.log('onTap call');
},
onLongpress: function(){
console.log('onLongpress call');
},
onTouchstart: function(){
console.log('onTouchstart call');
},
onTouchmove: function(){
console.log('onTouchmove call');
},
onTouchend: function(){
console.log('onTouchend call');
},
!> touchcancel:手指触摸动作被打断,如来电提醒,弹窗
index.wxml:
<view bind:touchcancel="onTouchcancel">手指触摸动作被打断,如来电提醒,弹窗</view>
index.js:
onTouchcancel: function(){
console.log('onTouchcancel call');
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
setTimeout(()=>{
wx.showModal({
title: '我是弹窗',
content: '我是弹窗内容'
});
}, 3000);
},
我这里使用了弹窗来进行模拟触摸被打断,编译好了代码点击页面的view,然后等待定时器3s,会发现弹窗出来了,我们的打断方法回调就被执行了。