欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 踩坑:触发bindlongtap同时触发bindtap,wx.request带参数发生错误,bindtap 多次点击

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:740

高端HTML5响应式企业通用网

2020-05-06   浏览:521

html5响应式外贸网站英文版

2020-05-08   浏览:510

HTML5自适应律师工作室类网

2020-04-04   浏览:505

HTML5影视传媒文化公司类网

2020-05-12   浏览:502

踩坑:触发bindlongtap同时触发bindtap,wx.request带参数发生错误,bindtap 多次点击

发布时间:2020-12-03  
一:当一个元素上同时绑定了bindtap与bindlongtap的时候触发bindlongtap同时依然会触发bindtap

分享者:bug_zero,原文地址 
解决方案: 
由于目前在微信小程序上bindlongtap被放置在bindtap后面触发,同时bindtap触发时间为touchend,则我们可以额外自定义一个函数用来判断触发的是tap还是longtap代码如下(在需要处理的页面page内定义):

 

//touchstart时候触发

setTapStartTime : function () {

this.setData({

startTime : Date.now()

})

},

//tap或者longtap时候触发时判断

isTap : function () {

return Date.now() - this.data.startTime < 200;

}

 

二:wx.request的请求地址带上参数时候会发生错误,无法正常请求(目前未了解到是否是哪边的问题):

解决方案:参数一律放在data内

 

三:bindtap 多次点击,可以打开N个窗口

分享者:月老,原文地址  目前在华为手机上出现,其他机型没测试

 

<view class="toufang row" bindtap="{{setTask}}" data-href="taskSet/taskRewen/index">view>

 

bindViewTap: function(event) {

 

var accountId=app.getAccountId();

if(!accountId){

app.getUserInfo(function(userInfo){})

}

var url=event.currentTarget.dataset.href;

wx.navigateTo({

url: "../"+url

})

}

快速的多次点击就会出现打开多过窗口。(第一次加载的页面没有这种情况,是在内页出现)。建议修复或给出解决方案。谢谢  问题已经解决,自己琢磨了一下,可以根据timeStamp的时间差来设置  1、在app.js定义全局变量 lastTapTime

 

globalData:{

lastTapTime : 0

}

2、设置事件的时间差

 

var app = getApp();

 

bindViewTap: function(event) {

var url=e.currentTarget.dataset.href;

var time=e.timeStamp;

//设置无效点击,根据自己的需求设置,这里navigateTo切换页面到动画结束需要的时间为500毫秒左右

if(time - app.globalData.lastTapTime < 500 && app.globalData.lastTapTime != 0){

app.globalData.lastTapTime = time;//这里一定更新无效点击的时间

return;

}

//更新有效点击的时间

app.globalData.lastTapTime = time;

wx.navigateTo({

url:url

})

}

大家可以尝试封装成方法,调用即可。