如果多个view绑定点击事件是发生在wx:for的嵌套层呢
时间: 2024-03-18 12:39:04 浏览: 51
如果多个view绑定点击事件发生在wx:for的嵌套层,可以通过事件委托的方式解决。即在最外层的view上绑定一个点击事件,然后在事件处理函数中通过事件对象的target属性和dataset属性来判断具体点击的是哪个子元素,并进行相应的处理。具体实现可以参考以下代码:
```
<view bindtap="handleTap">
<view wx:for="{{list}}" wx:key="id">
<view data-id="{{item.id}}" bindtap="handleChildTap">{{item.name}}</view>
</view>
</view>
Page({
data: {
list: [
{ id: 1, name: 'item1' },
{ id: 2, name: 'item2' },
{ id: 3, name: 'item3' }
]
},
handleTap: function (event) {
let id = event.target.dataset.id;
// do something
},
handleChildTap: function (event) {
// do something
}
})
```
在上面的代码中,我们在最外层的view上绑定了handleTap事件处理函数,同时在子元素中绑定了handleChildTap事件处理函数。当点击子元素时,事件会先被子元素捕获,然后向上冒泡到父元素,最终触发handleTap事件处理函数。在handleTap函数中,我们可以通过事件对象的target属性和dataset属性来获取具体点击的子元素信息,从而进行相应的处理。
阅读全文