众所周知,在小程序中,长按事件一松手是会触发单击事件的,而在我们的实际需求中,往往是需要单击事件和长按事件并存的。

然而,小程序却又好像想到了这种情况似的,给了我们一个触摸开始,一个触摸结束

也就是,一共有四个事件:

  • bindtouchstart:触屏开始
  • bindtouchend :触屏结束
  • bindlongtap:长按事件
  • catchtap:单击事件

这就给了我们手动区别长按与单击的可能

我们希望的效果是:

1.单击就是单击,没有什么可解释的

2.长按事件触发后就不要单击事件再触发了。

ok,我是这么做的:

1.首先做两个变量,一个用来控制单击是否可用,一个用来检查长按是否被触发

//page data
data: {
taplock: false, //单击锁,当此值为false时,单击不生效
longtap: false,//是否触发了长按
}

2.在各个事件中一顿操作

	tap(e) {
if (this.data.taplock)
console.log("单击事件触发")
},
// 长按事件
longtap() {
console.log("locked")
this.data.taplock = false //当长按事件触发后,锁定单击
this.data.longtap = true
},
// 触摸开始
touchStart() {
this.data.taplock = true //打开单击
this.data.longtap = false //初始化长按事件触发状态
console.log("触摸开始")
},
// 触摸结束
touchEnd() {
if (this.data.longtap)
console.log("触摸结束") //如果长按触发了,那么正常结束就好了
else
this.data.taplock = true //如果长按没触发,说明是单击,打开单击锁
},

亲测可用,完美解决

微信小程序单击事件与长按事件冲突的解决办法的更多相关文章

  1. 微信小程序开发系列五:微信小程序中如何响应用户输入事件

    微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发系列四:微信小程序 ...

  2. 微信小程序滚动动画,点击事件及评分星星制作!

    前言 小程序上线刷爆了朋友圈,但是最近渐渐消沉了,很少有动静!最近公司项目需要,体验了一下微信小程序,制作了几个功能,布局感觉很简单,但是交互和动画等写起来确实很费劲,主要是因为他不能操作DOM,只能 ...

  3. 微信小程序----搜索框input回车搜索事件

    在微信小程序里的搜索框,按软键盘回车键触发搜索事件. <input type="text"  placeholder="搜索" value="{ ...

  4. 微信小程序tabBar 不显示底部菜单的原因和解决方法

    1,书写,正确书写时tabBar,不要写成tabbar!!! 2,当创建新工程时,app.json中Pages配置是这样的 ,,[图1], 注意:微信小程序里面的json文件时不能注释的,图中只是给读 ...

  5. [技术博客]微信小程序开发中遇到的两个问题的解决

    IDE介绍 微信web开发者工具 前端语言 微信小程序使用的语言为wxml和wss,使用JSON以及js逻辑进行页面之间的交互.与网页的html和css略有不同,微信小程序在此基础上添加了自己的改进, ...

  6. 使用uni-app开发小程序,关于小程序更新后与用户本地不会及时更新解决办法

    1.原因分析 在小程序更新开发版本之后,用户本地并没有对之前版本的小程序进行删除,那么再进入小程序的时候的版本是不会发生变化的,这是由于发版是异步执行,因此新版本将会覆盖的比较慢,本质是小程序的启动方 ...

  7. 微信小程序分享朋友圈 长海报 canvas 动态高度计算

    业务场景 在微信中 小程序无法分享到朋友圈,目前大部分的解决方案都是,canvas动态绘制 生成图片后,保存到用户相册,用户进行分享照片到朋友圈,朋友圈打开图片后识别二维码进入小程序,达到分享目的 g ...

  8. 微信小程序(16)-- bindtap,catchtap事件绑定的区别

    bindtap,catchtap事件绑定的区别,这里就涉及冒泡事件了.bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡. logs.wxml <view cl ...

  9. 微信小程序小程序使用scroll-view不能使用下拉刷新的解决办法

    <scroll-view class="movie-grid-container" scroll-y="true" scroll-x="fals ...

  10. 理解微信小程序Wepy框架的三个事件交互$broadcast,$emit,$invoke

    $broadcast: $broadcast事件是由父组件发起,所有子组件都会收到此广播事件,除非事件被手动取消.事件广播的顺序为广度优先搜索顺序,如上图,如果页面Page_Index发起一个$bro ...

随机推荐

  1. QTabWidget的高度取决于当前选项卡的高度

    QTabWidget的高度自适应当前选项卡的高度,可以通过设置其他选项卡的QSizePolicy为Ignored, connect(ui->tabWidget,SIGNAL(currentCha ...

  2. 鸿蒙UI开发快速入门 —— part10: PersistentStorage与Environment

    1.前言 我们在鸿蒙UI开发快速入门 -- part09: 应用级状态管理LocalStorage & AppStorage中已经学习了LocalStorage与AppStorage,但他们都 ...

  3. Esxi缩小硬盘大小的办法

    ​进虚拟机,把要缩减硬盘的那个系统,磁盘管理,收缩卷收缩了.然后关机. 本例:调整800G到350G. Esxi打开ssh,进去. cd /vmfs/volumes// datastorename,完 ...

  4. [WPF UI] 为 AvalonDock 制作一套 Fluent UI 主题

    AvalonDock 是我这些天在为自己项目做技术选型时发现的一个很好的开源项目,它是一个用于 WPF 的布局控件库,可以帮助我们实现类似 Visual Studio 的布局效果.因为它自带的一些样式 ...

  5. R数据分析:反事实框架和因果中介的理论理解

    其实很早之前给大家写中介分析的做法的时候我也有思考过当中介变量或者因变量不是连续变量的时候,中介怎么做?或者说这个时候中介的结果如何解释?当时反正是一直没有太想明白这些问题,毕竟这些情况在发表的文献中 ...

  6. HarmonyOS Next 入门实战 - 关系型数据库、smartdb

    SQLite数据库 HarmonyOS的关系型数据库基于SQLite 导入模块 import { relationalStore } from '@kit.ArkData'; 实现步骤: 获取RdbS ...

  7. Could not install packages due to an OSError: ("Connection broken: ConnectionResetError(10054, '远程主机强迫关闭 了一个现有的连接。', None, 10054, None)",

    今天安装微软AI量化投资平台Qlib遇到报错 ERROR: Could not install packages due to an OSError: ("Connection broken ...

  8. Qt/C++音视频开发63-设置视频旋转角度/支持0-90-180-270度旋转/自定义旋转角度

    一.前言 设置旋转角度,相对来说是一个比较小众的需求,如果视频本身带了旋转角度,则解码播放的时候本身就会旋转到对应的角度显示,比如手机上拍摄的视频一般是旋转了90度的,如果该视频文件放到电脑上打开,一 ...

  9. Qt音视频开发19-vlc内核各种事件通知

    一.前言 对于使用第三方的sdk库做开发,除了基本的操作函数接口外,还希望通过事件机制拿到消息通知,比如当前播放进度.音量值变化.静音变化.文件长度.播放结束等,有了这些才是完整的播放功能,在vlc中 ...

  10. Qt编写百度地图综合应用(在线+离线+区域)

    一.前言 在现在很多的应用系统中,会提供一个地图模块,地图相关的应用和app也是非常多,最广泛的应用就属于导航,地图基本上分在线的和离线的两种,在线的一般都是实时的,数据也是最新的,速度很快路线很准, ...