为了账号安全,请及时绑定邮箱和手机立即绑定

zepto中的longTap事件和原生的touchend事件冲突如何避免?

zepto中的longTap事件和原生的touchend事件冲突如何避免?

梦里花落0921 2018-12-19 22:22:29
键盘事件,想要控制两种效果。一种是长按事件即longTap事件,长按数字键盘750ms再显示数字,另一种效果是直接点击即touchend事件无延迟显示结果。阻止事件冒泡行不通,于是想通过触发一个事件时取消另一个事件监听,然后通过异步来重新监听事件处理函数,这样每次点击之间就互不影响。但是这样行不通。重新监听事件处理函数并没有起到效果。而且有个很奇怪的点是:        $('#keyBox').on('touchend' , 'a' , function(e) {             e.preventDefault();            e.stopPropagation();                    keyboardEvent(e);        });        $('#keyBox').on('longTap' , 'a' , function(e) {            keyboardEvent(e);              return false;        }); 直接这样写会同时执行两个事件,直接点击松开会先触发touchend,然后大概有750ms延迟就触发第二个事件。这都不是长按啊,为什么会执行longTap?长按的话就先触发longTap然后再触发touchend。谁有比较好的解决方案?
查看完整描述

1 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

要用就用封装好的啊,一般这种手势库都是设置几个计时器,如果没到点touchend触发了,那么就生成个tap事件,如果touchend是到点以后再触发的那就触发longtap,你一边用着longtap一边还处理着touchend,肯定会乱的啊。


查看完整回答
反对 回复 2019-01-07
  • 1 回答
  • 0 关注
  • 438 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信