当前位置:   article > 正文

微信小程序长按与点击事件冲突解决方案_touchend函数在微信小程序中没有触发点击之后才触发

touchend函数在微信小程序中没有触发点击之后才触发

问题再现

对于同一控件同时设置bindtap和bindlongtap,会发现长按时先出现bindlongtap的事件,然后触发点击事件。

通过测试,我们发现,小程序中事件执行的顺序是
点击:touchstart → touchend → tap
长按 touchstart → longtap → touchend → tap

解决方案

abc.wxml

<view bindtouchstart="bindTouchStart" bindtouchend="bindTouchEnd" bindlongtap="bingLongTap" bindtap="bindTap">

</view>
  • 1
  • 2
  • 3

abc.js

bindTouchStart: function(e) {
    this.startTime = e.timeStamp;
}
bindTouchEnd: function(e) {
    this.endTime = e.timeStamp;
}
bindTap: function(e) {
    if(this.endTime  - this.startTime < 350) {
        console.log("点击")
    }
}
bingLongTap: function(e) {
    console.log("长按");
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/120528?site
推荐阅读
相关标签
  

闽ICP备14008679号