微信小程序for循环中的view绑定tap事件?

新手上路,请多包涵

我在for中循环写了3个view,然后在for循环内给每个view绑定了tap事件,可是点击的时候发现只有第三个view能触发事件,其他两个点击都不能触发,这是为什么?
主要代码如下:

<view class="menu-list" bindtouchmove="buttonMove" bindtouchstart="buttonStart" bindtouchend="buttonEnd">
   <view class="menu-item" wx:for="{{menuList}}" wx:key="unique" animation="{{animationData}}">
    <view class="menu-circle-item" style="-webkit-transform: rotate({{item.deg}}deg);" data-menu="{{item.menu}}" data-id='{{item.id}}' catchtap='turntomenu'>
     <image class="image-style" src="{{item.src}}"></image>
    </view>
 onReady: function (e) {
    var that = this;
    app.menuConfig = {
      menu: [
        { 'index': 0, 'menu': '菜单1', 'src': '../../pictures/pbills.png' },
        { 'index': 1, 'menu': '菜单2', 'src': '../../pictures/num8.png' },
        { 'index': 2, 'menu': '菜单3', 'src': '../../pictures/moto.png' },
      ]
    }
    var menuConfig = app.menuConfig.menu,
      len = menuConfig.length,
      menuList = [],
      degNum = 360 / len 
    for (var i = 0; i < len; i++) {
      menuList.push({id:i, deg: i * degNum, menu: menuConfig[i].menu, src: menuConfig[i].src });
      console.log("menu:" + menuConfig[i].menu)
    }
    that.setData({
      menuList: menuList
    });
  },
  turntomenu:function (event){
    var id = event.currentTarget.dataset.id;
    if(id==0){
      wx.navigateTo({
        url: '../menu0/menu0'
      })
    }else if(id==1){
      wx.navigateTo({
        url: '../menu1/menu1',
      })
    }else{
      wx.navigateTo({
        url: '../menu2/menu2',
      })
    }
  }

生成的效果如下:
图片描述

然后只有点击菜单3的时候能够跳转,其他两个菜单都不能触发点击事件,求问这是什么问题?

阅读 5.4k
2 个回答

你的循环体没有绑定事件,你绑在了他外面的那层了,你得把它挪进wx:for循环哪个标签里

新手上路,请多包涵

请问是怎么解决的?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题