bindtap 多次点击,可以打开N个窗口,目前在华为手机上出现,其他机型没测试
< view class = "toufang row" bindtap = "{{setTask}}" data-href = "taskSet/taskRewen/index" > |
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 }) } |
大家可以尝试封装成方法,调用即可。