前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小程序如何解决重复点击?

小程序如何解决重复点击?

作者头像
Javanx
发布2019-09-04 15:22:16
1.3K0
发布2019-09-04 15:22:16
举报
文章被收录于专栏:web秀

小程序有非常蛋疼的问题,没有很好的优化事件机制,导致重复点击会触发多次(如果打开页面,快速多次点击,会打开多个重复的页面,返回时就会关掉一个还有一个...)

网上很多都是给按钮或者事件按钮添加disabled属性,通过事件改变值,并判断此时能否被点击。经过本人测试,在开发者工具上面是可以的。但是在真机上面快速点击多次还是会触发多次。

下面提供更科学的办法:

data里面定义3个属性

代码语言:javascript
复制
touchStartTime: 0, // 触摸开始时间
touchEndTime: 0, // 触摸结束时间
lastTapTime: 0 // 最后一次单击事件点击发生时间

页面触发这3个事件

代码语言:javascript
复制
<view @tap="doubleTap" @touchstart="touchStart" @touchend="touchEnd">测试重复点击事件</view>

methods里面添加3个方法

代码语言:javascript
复制
// 防止重复点击
    touchStart(e) {
      this.touchStartTime = e.timeStamp;
    },
    touchEnd(e) {
      this.touchEndTime = e.timeStamp;
    },
    doubleTap(item, e) {
      var vm = this;
      // 控制点击事件在350ms内触发,加这层判断是为了防止长按时会触发点击事件
      if (vm.touchEndTime - vm.touchStartTime < 350) {
        // 当前点击的时间
        var currentTime = e.timeStamp;
        var lastTapTime = vm.lastTapTime;
        // 更新最后一次点击时间
        vm.lastTapTime = currentTime;
        // 如果两次点击时间在300毫秒内,则认为是双击事件
        if (currentTime - lastTapTime > 300) {
          // do something 点击事件具体执行那个业务
        }
      }
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年6月5日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • data里面定义3个属性
  • 页面触发这3个事件
  • methods里面添加3个方法
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档