vue中v-for指令循环每一个item,点击时选中,再次点击不选中,点击其他item时互斥

项目场景:

提示:这里简述项目相关背景:

例如:项目场景:通过v-for循环出来的每一个item项 ,当点击当前item时加上选中样式,当再次点击时去掉选中样式,点击其他item时该item选中并加上样式而上一个选中的item不选中去掉样式


解决方案:

vue 的data中新定义两个变量 ,current、isActive,如下

   currentModel:null,
   isActiveModel:false

当点击当前item时,判断当前的点击事件传来index(当前item的索引值)是否等于current ,如果相等再判断isActive是否为true,如果为true ,isActive为false,如果是false则为true。如果index不等于current ,isActive为true。然后使index等于current。代码如下

  • html部分
<div class="model-item" v-for="(item,index) in modelList" @click="chooseBlogModel(item,index)">
                 <div class="public-model" v-show="!modelParams.type" >
                   <h2 class="c-title" v-text="item.title"></h2>
                   <img :src="item.img" alt="">
                   <div class="c-time">更新于
                     <span v-date="item.updateTime"> </span></div>
                 </div>
                 <div class="private-model" v-show="modelParams.type">
                   <h2 class="e-title" v-text="item.title"></h2>
                   <div class="my-model" v-html="item.content"></div>
                   <div class="e-time">
                     <div>更新于 <span v-date="item.updateTime"></span></div>
                     <div>
                       <span class="el-icon-edit" @click.stop="toEditBlogModel(item.id)"></span>
                       <span class="el-icon-delete" v-show="item.type" @click.stop="deleteBlogModel(item.id,index)"></span>
                     </div>
                   </div>
                 </div>
                 <div class="mode" v-show="currentModel===index&&isActiveModel">
                   <span class="el-icon-check"></span>
                 </div>
               </div>
  • js部分
 //选择模板
          chooseBlogModel(item,index){
            if(this.currentModel===index){
              this.isActiveModel = !this.isActiveModel;
            }else {
              this.isActiveModel=true
            }
            this.currentModel=index
    
          },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值