<view class="seat"> <block wx:for="{{devData}}" wx:for-index="i" wx:for-item="item" wx:key="index"> <view class='onehandle5'> <block wx:for="{{3}}" wx:for-index="k" wx:for-item="item_k" wx:key="index"> <view wx:if="{{devData[i+item_k] != null && i%3 == 0 }}" class="useage2 {{isActive ? 'active' : ''}}" bindtap="seatActive" data-index="{{i}}"> {{devData[i+item_k]}} </view> </block> </view> </block> </view>怎么将 isActive 变量改为一个数组或对象,以便为每个座位保存一个单独的状态。并且怎么在此基础上添加选座功能
时间: 2023-06-27 19:04:10 浏览: 145
pzim-devdata.github.io:这是我的Github Pages网站
如果要将 `isActive` 变量改为一个数组或对象,以便为每个座位保存一个单独的状态,可以考虑这样做:
1. 首先,定义一个数组或对象来存储每个座位的状态,例如:
```
data: {
seatStatus: [
{ id: 0, isActive: false },
{ id: 1, isActive: false },
{ id: 2, isActive: false },
// ... 其他座位
]
}
```
其中,每个元素包含一个 `id` 属性和一个 `isActive` 属性,分别表示座位的唯一标识符和当前是否被选中。
2. 在模板中,使用 `wx:for` 循环遍历 `seatStatus` 数组,为每个座位渲染一个视图,并且绑定一个点击事件 `seatActive`,例如:
```
<view class="seat">
<block wx:for="{{seatStatus}}" wx:key="id">
<view class="useage2 {{item.isActive ? 'active' : ''}}" bindtap="seatActive" data-index="{{index}}">
{{item.id}}
</view>
</block>
</view>
```
其中,`{{item.isActive ? 'active' : ''}}` 表示如果当前座位的 `isActive` 属性为 `true`,则添加 `active` 类名,否则不添加。
3. 在 `seatActive` 方法中,根据传入的 `data-index` 参数修改对应座位的 `isActive` 属性,例如:
```
seatActive: function(event) {
var index = event.currentTarget.dataset.index;
var seatStatus = this.data.seatStatus;
seatStatus[index].isActive = !seatStatus[index].isActive;
this.setData({
seatStatus: seatStatus
});
}
```
这样就可以实现为每个座位保存一个单独的状态,并且在点击座位时切换选中状态。
如果要在此基础上添加选座功能,可以考虑在页面中添加一个“确认选座”按钮,当用户点击该按钮时,获取选中座位的信息,并进行保存或提交操作。具体实现可以根据业务需求来确定。
阅读全文