微信小程序 全选和取消全选

 

想要实现的效果:点击全选时,所有商品全部选中,图标为黑色选中状态,点击其中一个取消选中状态,全选按钮也随之为取消选中状态,当再次点击全选时,所有商品全部取消选中,如果分别把所有商品一个个选中,全选按钮会再次变为选中状态

js:

data: {
    define:true,
    total_num:"0",
    sc_object:[
      {
        sc_title:"嘻哈帮街舞",
        sc_imgsrc:"../../images/growup_img.png",
        sc_name:"嘻哈帮定制周年庆短袖",
        sc_detail:"红色-M号",
        sc_price:"188",
        sc_num:"1",
        sc_total:"188",
        state:0,
        editor_url:"../order_editor/order_editor"
       
      },
      {
        sc_title: "嘻哈帮街舞",
        sc_imgsrc: "../../images/growup_img.png",
        sc_name: "嘻哈帮定制周年庆短袖",
        sc_detail: "红色-M号",
        sc_price: "188",
        sc_num: "1",
        sc_total: "188",
        state: 0,
        editor_url: "../order_editor/order_editor"
      },
      {
        sc_title: "嘻哈帮街舞",
        sc_imgsrc: "../../images/growup_img.png",
        sc_name: "嘻哈帮定制周年庆短袖",
        sc_detail: "红色-M号",
        sc_price: "188",
        sc_num: "1",
        sc_total: "188",
        state: 0,
        editor_url: "../order_editor/order_editor"
      }
    ]
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
  
  },
  select_add: function (e) {
    var index = e.currentTarget.dataset.index;
    var array = this.data.sc_object;
    if (array[index].state == 1) {
      array[index].state = 0;
    } else if (array[index].state == 0) {
      array[index].state = 1;
    }
    var num=0;
    var aa=0;
    for(var i=0;i<array.length;i++){
      var single_num = parseInt(array[i].sc_total);
      if(array[i].state==1){
        num=num+1;
        aa=aa+single_num
      }
      if (num ==array.length){
        this.setData({
          define:false
        })
      }else{
        this.setData({
          define:true
        })
      }
    }
    this.setData({
      sc_object: this.data.sc_object,
      total_num:aa
    });
  },
  switchTab1: function (e) {
    var that = this;
    let define = that.data.define;
    var num1=that.data.num1;
    define = !define;
    var array = that.data.sc_object;
    var aa=0;
    for(var i=0;i<array.length;i++){
      var nn = array[i].state;
      var single_num = parseInt(array[i].sc_total);
      if(define==true){
        array[i].state=0
      }else{
        array[i].state = 1
        aa = aa + single_num;
      } 
    }
    that.setData({
      define: define,
      sc_object: this.data.sc_object,
      total_num:aa
    })
  },

 

转载于:https://www.cnblogs.com/jvziking/p/8479005.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值