💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
## 什么是事件 * 事件是视图层到逻辑层的通讯方式。 * 事件可以将用户的行为反馈到逻辑层进行处理。 * 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。 * 事件对象可以携带额外信息,如 id, dataset, touches。 ## 事件分类 * `touchstart`手指触摸 * `touchmove`手指触摸后移动 * `touchcancel`手指触摸动作被打断,如弹窗和来电提醒 * `touchend` 手指触摸动作结束 * `tap` 手指触摸后离开 * `longtap` 手指触摸后后,超过350ms离开 ## 事件绑定 #### 事件绑定的写法同组件的属性,以 key、value 的形式。 * key 以bind或catch开头,然后跟上事件的类型,如bindtap, catchtouchstart * value 是一个字符串,需要在对应的 Page 中定义同名的函数。不然当触发事件的时候会报错。 bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡。 #### 小程序的具体事件: * 单击(tap) * 双击(dbtap) * 长按(longtap) * 滑动 ### 1.单击 单击事件由touchstart、touchend组成,touchend后触发tap事件。 ``` //wxml <view> <button type="primary" bindtouchstart="mytouchstart" bindtouchend="mytouchend" bindtap="mytap">点我吧</button> </view> //js mytouchstart: function(e){ console.log(e.timeStamp + '- touch start') }, mytouchend: function(e){ console.log(e.timeStamp + '- touch end') }, mytap: function(e){ console.log(e.timeStamp + '- tap') } ``` ![](https://box.kancloud.cn/e54d2b32d200117c9444dd8f1bd260a2_867x755.gif) ### 2.双击 双击事件由两个单击事件组成,两次间隔时间小于300ms认为是双击;微信官方文档没有双击事件,需要开发者自己定义处理。 ### 3.长按 长按事件手指触摸后,超过350ms再离开。 ### 4.滑动 手指触摸屏幕并移动,为了简化起见,下面以水平滑动和垂直滑动为例。 滑动事件由touchstart、touchmove、touchend组成 ### **[参考文档](https://www.cnblogs.com/nosqlcoco/p/5954453.html)**