我在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的时候能够跳转,其他两个菜单都不能触发点击事件,求问这是什么问题?
你的循环体没有绑定事件,你绑在了他外面的那层了,你得把它挪进wx:for循环哪个标签里