weixin_41812138 2021-05-07 21:16 采纳率: 25%
浏览 547
已采纳

vue关于v-for循环添加样式

<div style="display: inline;margin: 10px" v-for="(item,index) in preparation.questionList" v-if="item">
            <el-button class="interaction-but" @click="interactiveQuestion(item,index)">(抢答){{item.questionName}}</el-button>
          </div>

这种循环遍历多个button的,我想实现根据下标index点击具体的一个button后添加背景颜色,标示已完成,需要怎么实现?使用:class会发生点击另一个,其他的button的已完成背景色消失。

  • 写回答

3条回答 默认 最新

  • leewen5 2021-05-08 10:13
    关注
    <div style="display: inline;margin: 10px" v-for="(item,index) in preparation.questionList" v-if="item">
                <el-button class="interaction-but" :class="{'active':item.active}" @click="interactiveQuestion(item,index)">(抢答){{item.questionName}}</el-button>
              </div>
    
    
    //js 
    interactiveQuestion(item,index){
        this.preparation.questionList.map(x=>{x.acive=false});
        this.preparation.questionList[index].active=true;
    }
    
    
    //css
    .interaction-but.active{
        background: red;
        color:#fff;
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?