小程序中wx:for循环按钮点击显示内容
在小程序中,我们可以使用 wx:for 循环创建多个按钮,并通过绑定点击事件实现每个按钮的详细内容显示与隐藏。下面是一个示例代码:
<view wx:for='{{list}}' wx:key='index'>
<button bindtap='showDetail' data-index='{{index}}'>{{item.title}}</button>
<view wx:if='{{item.showDetail}}'>详细内容:{{item.content}}</view>
</view>
在上面的代码中,每个按钮绑定了一个名为 showDetail 的点击事件。在事件处理函数中,可以根据当前按钮所在的索引 index 来确定要显示详细内容的数据项,然后将该数据项中的 showDetail 属性设置为 true 即可:
Page({
data: {
list: [
{title: '按钮1', content: '详细内容1', showDetail: false},
{title: '按钮2', content: '详细内容2', showDetail: false},
{title: '按钮3', content: '详细内容3', showDetail: false}
]
},
showDetail: function(e) {
var index = e.currentTarget.dataset.index;
var list = this.data.list;
list[index].showDetail = !list[index].showDetail;
this.setData({list: list});
}
})
在 showDetail 函数中,我们通过 e.currentTarget.dataset.index 获取当前按钮所在的索引 index,然后通过 this.data.list[index] 获取该数据项,再将其 showDetail 属性取反,并通过 this.setData 更新数据。这样,每次点击按钮时,就可以动态地显示或隐藏相应的详细内容了。
需要注意的是,在 wx:for 循环中,需要使用 wx:key 属性来指定循环的唯一标识,以便小程序能够正确地识别和更新数据。在上面的示例代码中,我们使用了 wx:key='index',表示使用每个数据项的索引作为唯一标识。
除了使用 data-index 属性获取按钮索引,我们还可以使用 event.target.dataset.index 获取索引,这两种方法都能实现相同的效果。选择哪种方法取决于个人偏好。
原文地址: https://www.cveoy.top/t/topic/mHvU 著作权归作者所有。请勿转载和采集!