收藏
回答

如何在for循环下创造的多个view中,改变其中一个view的颜色?

这是在for循环下出来的多个view,如何单击其中一个,就改变被点击的颜色。

我写出来是单击其中一个,全部都改变,小白求救!!!

回答关注问题邀请回答
收藏

5 个回答

  • TimeBoy
    TimeBoy
    2021-04-23

    统一回复:谢谢各位回复,昨天研究好久,已经实现该功能了。我用来两个视图层,判断status的状态来决定展示哪一个。

    //xml  
      <view   wx:for="{{best_contents2}}" wx:key="id"  >
    
      <view wx:if="{{item.status==0}}" class="item2_content1_datas" id="{{index}}" catchtap="choice_achievement" >
     <view>xxxxx</view>
            </view>
    
      <view wx:if="{{item.status==1}}" class="item2_content1_datas" id="{{index}}" catchtap="choice_achievement" >
     <view>xxxxx</view>
            </view>
    </view>
    
    
    //js
    //best_contents2为循环list
    choice_achievement:function(e){    
        var  items_id=e.currentTarget.id
        var Best_content2=this.data.best_contents2
        for (var i in Best_content2){
          if(i==items_id){
            if (Best_content2[i].status == 0) {
              Best_content2[i].status = parseInt(Best_content2[i].status) + 1
            }
          }
        }
        this.setData({
          best_contents2: Best_content2,
        })
      },
    


    2021-04-23
    有用 1
    回复 1
    • TimeBoy
      TimeBoy
      2021-04-23
      再次点击--目的是取消--只将上述改为Best_content2[i].status = parseInt(Best_content2[i].status) - 1
      2021-04-23
      1
      回复
  • 猛男陈阔
    猛男陈阔
    2021-04-23
    <view wx:for='{{list}}' class="{{activeIndex===index?'active':''}}" bindtap='checkItem' data-index='{{index}}'></view>
    
    
    Page({
      data:{
        activeIndex:0,//给了个默认值 可以为null
      },
      checkItem(e){
        const {index} = e.currentTarget.dataset;
        const {activeIndex} = this.data;
        if(index==activeIndex){
          return 
        }
        this.setData({
          activeIndex:Number(index)
       })
      }
    })
    
    2021-04-23
    有用
    回复 1
    • TimeBoy
      TimeBoy
      2021-04-23
      初次渲染时只有activeIndex===index项才能出来,其他的的出不来。
      2021-04-23
      回复
  • 郑钱花
    郑钱花
    2021-04-23

    class="activeIndex == index ? 'active' : 'normal' "

    2021-04-23
    有用
    回复 1
    • TimeBoy
      TimeBoy
      2021-04-23
      已解决
      2021-04-23
      回复
  • 跨商通
    跨商通
    2021-04-23

    点击的时候获得clickedIndex

    wx:if='{{index==clickedIndex}}'

    2021-04-23
    有用
    回复 1
    • TimeBoy
      TimeBoy
      2021-04-23
      已解决
      2021-04-23
      回复
  • 鲤子
    鲤子
    发表于小程序端
    2021-04-22

    加个if判断,对比下点击的key值。

    2021-04-22
    有用
    回复 1
    • TimeBoy
      TimeBoy
      2021-04-23
      已解决
      2021-04-23
      回复
登录 后发表内容