深圳市企业网站建设,网站建设的完整流程包括,数据中心idc机房建设,济南建设信用网✅作者简介#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者#xff0c;修心和技术同步精进。 #x1f34e;个人主页#xff1a;Java Fans的博客 #x1f34a;个人信条#xff1a;不迁怒#xff0c;不贰过。小知识#xff0c;大智慧。 #x1f49e;当前专栏… ✅作者简介2022年博客新星 第八。热爱国学的Java后端开发者修心和技术同步精进。 个人主页Java Fans的博客 个人信条不迁怒不贰过。小知识大智慧。 当前专栏微信小程序学习分享 ✨特色专栏国学周更-心性养成之路 本文内容微信小程序——实现手机振动效果 文章目录 前言方案一使用bindtap和bindlongtap两个事件绑定不同的函数方案二使用一个变量来判断事件类型 前言 对于同一个控件我们有时候需要实现两种事件效果比如一个控件的点击事件与长按事件我们通过一个按钮去实现下面提供两种解决方案供博友们学习使用。
方案一使用bindtap和bindlongtap两个事件绑定不同的函数 使用bindtap和bindlongtap两个事件绑定不同的函数可以在控件上同时绑定bindtap和bindlongtap两个事件分别对应点击和长按事件。 但是对于同一控件同时设置 bindtap 和 bindlongtap ,会发现长按时先出现 bindlongtap 的事件然后触发点击事件显然这不是我们想要的。所以我这边将方法进行了修改例如
//需要触发的组件
view bindtouchstartonTouchStart bindtouchendonTouchEnd bindlongpressonLongPress bindtaponClick点击或长按/view在对应的Page或Component的js文件中定义onTap和onLongTap两个函数处理点击和长按事件
Page({ data: { },/* * 事件处理 */// 点击事件onClick: function(e) { //如果长按时间小于350则证明是用户进行点击if (this.endTime - this.startTime 350) { console.log(点击);}},// 长按事件onLongPress: function(e) { console.log(长按);},// 手指触摸开始(不会触发)// 请勿删除代码onTouchStart: function(e) { this.startTime e.timeStamp;},// 手指触摸结束(不会触发)// 请勿删除代码onTouchEnd: function(e) { this.endTime e.timeStamp;},
})方案二使用一个变量来判断事件类型 可以在控件上只绑定一个事件例如bindtap然后在事件处理函数中使用一个变量来判断触发的是点击还是长按事件。例如
view bindtaponTapLongTap点击或长按/view在对应的Page或Component的js文件中定义onTapLongTap函数使用event.type属性来判断事件类型决定执行点击或长按的逻辑
Page({onTapLongTap: function(event) {if (event.type tap) {// 点击事件处理逻辑console.log(点击事件);} else if (event.type longpress) {// 长按事件处理逻辑console.log(长按事件);}}
})这两种方式都可以实现同一控件的点击与长按事件共存。根据项目需求选择适合的方式进行处理。 码文不易本篇文章就介绍到这里如果想要学习更多Java系列知识点击关注博主博主带你零基础学习Java知识。与此同时对于日常生活有困扰的朋友欢迎阅读我的第四栏目《国学周更—心性养成之路》学习技术的同时我们也注重了心性的养成。