微信小程序——同一控件的点击与长按事件共存的解决方案

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。

🍎个人主页:Java Fans的博客

🍊个人信条:不迁怒,不贰过。小知识,大智慧。

💞当前专栏:微信小程序学习分享

✨特色专栏:国学周更-心性养成之路

🥭本文内容:微信小程序------实现手机振动效果

文章目录

前言

  对于同一个控件,我们有时候需要实现两种事件效果,比如一个控件的点击事件与长按事件,我们通过一个按钮去实现,下面提供两种解决方案,供博友们学习使用。

方案一:使用bindtap和bindlongtap两个事件绑定不同的函数

  使用bindtap和bindlongtap两个事件绑定不同的函数:可以在控件上同时绑定bindtap和bindlongtap两个事件,分别对应点击和长按事件。

  但是对于同一控件同时设置 bindtap 和 bindlongtap ,会发现长按时先出现 bindlongtap 的事件,然后触发点击事件,显然这不是我们想要的。所以我这边将方法进行了修改,例如:

html 复制代码
//需要触发的组件
<view bindtouchstart="onTouchStart" bindtouchend="onTouchEnd" bindlongpress="onLongPress" bindtap="onClick">点击或长按</view>

  在对应的Page或Component的js文件中,定义onTap和onLongTap两个函数处理点击和长按事件:

javascript 复制代码
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,然后在事件处理函数中使用一个变量来判断触发的是点击还是长按事件。例如:

html 复制代码
<view bindtap="onTapLongTap">点击或长按</view>

  在对应的Page或Component的js文件中,定义onTapLongTap函数,使用event.type属性来判断事件类型,决定执行点击或长按的逻辑:

javascript 复制代码
Page({
  onTapLongTap: function(event) {
    if (event.type === 'tap') {
      // 点击事件处理逻辑
      console.log('点击事件');
    } else if (event.type === 'longpress') {
      // 长按事件处理逻辑
      console.log('长按事件');
    }
  }
})

  这两种方式都可以实现同一控件的点击与长按事件共存。根据项目需求,选择适合的方式进行处理。


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目《国学周更---心性养成之路》,学习技术的同时,我们也注重了心性的养成。

相关推荐
凡科网小帆4 小时前
2026小程序商城平台哪家强,小程序商城平台选型怎么做
大数据·小程序·小程序商城平台
游戏开发爱好者88 小时前
App Store 上传 IPA 自动化,.p8 密钥认证与 CI/CD 接入实战
android·运维·ci/cd·小程序·uni-app·自动化·iphone
Greg_Zhong9 小时前
微信小程序 + 腾讯云人体分析:从 0 到 1 实现 AI 抠图打卡合照(细节待更新~)
人工智能·微信小程序·腾讯云·ai抠图-ai打卡拍照
游戏开发爱好者89 小时前
iOS 推送怎么配置,APNs 推送证书、设备库与群发
android·ios·小程序·https·uni-app·iphone·webview
snow@li10 小时前
小程序:200知识点/速查手册
小程序
AI_AGENT_DEV_AI19 小时前
原生 APP 开发的开发优点
uni-app
不吃辣4901 天前
vibe coding | 如何做一个AI制图小程序?
人工智能·小程序·ai编程
laboratory agent开发1 天前
2026小程序服务商推荐:全域私域数字化工具选型深度解析
小程序
小码哥0681 天前
智慧物业管理系统开发详解:核心功能与源码开发优势
小程序·物业管理·物业系统
汤姆yu1 天前
基于微信小程序的方言转文字小程序的设计与实现
java·小程序·毕业设计·方言翻译