针对小程序for循环绑定数据,实现toggle切换效果(交流QQ群:604788754)

如有更好的方法实现,可以留言或加群交流学习。谢谢(交流QQ群:604788754)

WXML:

<block wx:for="{{datanum}}" wx:for-index="idx" wx:for-item='item'>
  <view class="classname" id="{{idx}}" bindtap="curchange">
    <view class="boxs">{{item.datas}}</view>
    <view wx:if="{{item.toggle==true}}" class="boxs">{{idx}}</view>
  </view>
</block>

 WXSS:

.classname{
  background-color: red;
  width: 200px;
  margin-top: 50px;
}
.boxs{
  width: 100px;
  height: 50px;
  background-color: #188eee;
  line-height: 50px;
  text-align: center;
  color: #fff;
  margin-bottom: 10px;
}

 JS:

Page({
  data:{
    datanum:[
      { datas:11 },
      { datas: 22 },
      { datas: 333 }
    ]
  },
  onLoad:function(){
    var datanum=this.data.datanum;
    for (var i = 0; i < datanum.length; i++) {
       datanum[i]['toggle'] = false;  //添加toggle 属性  
     };
     this.setData({
       datanum: datanum
     });
  },
  curchange:function(event){
    var id = event.currentTarget.id;
    var toggle = this.data.datanum[id]['toggle'];
    if(toggle==false){
      this.data.datanum[id]['toggle'] = true;
    }else{
      this.data.datanum[id]['toggle'] = false;
    };
    this.setData({
      datanum: this.data.datanum
    });
  }
});

 效果图如下:

 

转载于:https://www.cnblogs.com/yiweiyihang/p/7058871.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想要实现购物车中选择商品的功能,可以按照以下步骤进行: 1. 在购物车商品对象中添加一个属性来表示该商品是否被选中: ```javascript // 在 addToCart 方法中添加 selected 属性 this.data.cartList.push({ id, name, price, count: 1, selected: true, // 默认为选中状态 }); ``` 2. 在购物车列表中展示商品的时候,根据商品的 selected 属性来判断是否显示选中状态: ```html <view> <block wx:for="{{cartList}}" wx:key="id"> <view> <text>商品名称:{{item.name}}</text> <text>价格:{{item.price}}</text> <text>数量:{{item.count}}</text> <button data-id="{{item.id}}" bindtap="removeFromCart">移除</button> <checkbox data-id="{{item.id}}" checked="{{item.selected}}" bindchange="toggleSelect"></checkbox> </view> </block> <view> <text>购物车总数量:{{totalCount}}</text> <text>购物车总金额:{{totalAmount}}</text> <button bindtap="clearCart">清空购物车</button> </view> </view> ``` 3. 实现 toggleSelect 方法来切换商品的选中状态: ```javascript toggleSelect: function(e) { const { id } = e.currentTarget.dataset; // 找到要切换选中状态的商品在购物车中的索引 const index = this.data.cartList.findIndex(item => item.id === id); if (index !== -1) { // 切换商品的选中状态 this.data.cartList[index].selected = !this.data.cartList[index].selected; this.updateCartData(); } }, ``` 4. 更新购物车数据方法 updateCartData 需要考虑商品的选中状态,只计算选中的商品数量和金额: ```javascript updateCartData: function() { const totalCount = this.data.cartList.reduce((sum, item) => { if (item.selected) { return sum + item.count; } return sum; }, 0); const totalAmount = this.data.cartList.reduce((sum, item) => { if (item.selected) { return sum + item.price * item.count; } return sum; }, 0); this.setData({ cartList: this.data.cartList, totalCount, totalAmount, }); }, ``` 通过以上步骤,你可以实现小程序购物车中选择商品的功能。每个商品都有一个选中状态属性,点击商品对应的 checkbox 可以切换商品的选中状态,同时购物车总数量和总金额只计算选中的商品。希望对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值