收藏
回答

bindtap 多次点击,可以打开N个窗口,目前在华为手机上出现,其他机型没测试

问题模块
API和组件




<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
      })
 }

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

最后一次编辑于  2017-02-08  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

2 个回答

  • 回梦無痕
    回梦無痕
    2017-01-25

    自己定个状态呗

    var ret=true;

    //点击

    if(!ret){returm;}

    ret=false;

    //

    //执行的代码

    ret=true;

    //


    2017-01-25
    赞同
    回复
  • 月老
    月老
    2017-02-06

    逗我呢?一个小程序里面有多少个bindtap事件,难道每一个都去定义吗?这微信小程序在做bindtap事件的时候没有做的精细

    2017-02-06
    赞同
    回复