微信小程序长按事件触发点击事件的BUG处理
说实话,微信小程序的发展还是有点不好。时间泡坑后,遇到longtap事件触发tap事件的BUG。
如下代码
wxmlview class=' container ' view button bind tap=' tap ' binlongtap=' long tap ' long press me/button/view/views page({ data 3360 }、Tap: function(){ console.log('触发的tap')}、long tap : function(){ console . log('触发的long tap ')})Effect
解决方法
谷歌确认是BUG后,我看了一下网上的解决方案。基本上,我通过touchstart和touchend重新确定了tap和longtap事件,这是我不太喜欢的。
看看微信小程序的事件定义:
轻按,手指触碰后立即离开longtap,350ms后离开,即当前触发顺序为longtap-touchend-tap。
其实解决的办法也很明确。简单来说,就是添加一个锁,应用到上面的代码中:
page({ data : { lock : false },tap 3360 function(){//检查锁if(this . data . lock){ return;} console.log('触发tap')},Touchend : function(){ if(this。data . lock){//unlock settimeout(()={ this。setdata({ lock 3360 false });}, 100);} },longtap:函数(){//Lock this . setdata({ Lock : true });Console.log('触发longtap') }})看看效果。
延伸
在大多数情况下,我们不需要在touchend中锁定,因为长按操作会触发其他异步操作,只要在异步操作结束时释放锁定即可。
版权声明:微信小程序长按事件触发点击事件的BUG处理是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。