vue中,选中多个选项,并且使其高亮
在vue中很常见的就是tab切换,选项卡切换,动态添加类名使选项卡选中高亮,对应内容切换,方法大家应该非常熟悉了,现在提到一种,可以多选多个选项的,效果如下图贴上代码<div class="zxlybox"><p>请选择领域 <span>(可多选)</span>&am
·
在vue中很常见的就是tab切换,选项卡切换,动态添加类名使选项卡选中高亮,对应内容切换,方法大家应该非常熟悉了,
现在提到一种,可以多选多个选项的,效果如下图
贴上代码
<div class="zxlybox">
<p>请选择领域 <span>(可多选)</span></p>
<ul>
<li class="zxlybtn" :class="{zxlybtn2:chooseAfterValue.indexOf( item.text )!=-1}" v-for="(item,index) in lyList" :key="index" @click="choosely(index,item.text)">
<span>{{item.text}}</span>
<img v-if="chooseAfterValue.indexOf( item.text )!=-1" src="../../../static/img/close.png" alt="">
</li>
</ul>
<p class="btn"><span @click="xzly">取消</span><span @click="sure">确定</span></p>
</div>
export default {
name:'enter',
data(){
return{
lyList:[
{text:'绘画'},
{text:'书法'},
{text:'陶瓷'},
{text:'紫砂'},
{text:'玉石'},
{text:'金属'},
{text:'雕塑'},
{text:'宗教'},
{text:'文玩'},
{text:'非遗'},
{text:'杂项'},
],
chooseAfterValue:[],
}
},
methods:{
choosely(n,value){
if(this.chooseAfterValue.indexOf( value )!=-1){
this.chooseAfterValue.splice( this.chooseAfterValue.indexOf( value ), 1 )
}else{
this.chooseAfterValue.push(value)
}
},
}
}
方法中 用到了indexOf 根据value 内容值,找到了对应在数组中的下标, (等于-1数组中没有这个值)
然后,从数组中删除就是splice(从下标开始,删除长度为1)
而上边动态添加类名也是根据在数组中判断 arr.indexOf(‘xxx’) 是否为-1 (是-1, 说明数组中没有匹配到改内容(动态添加类名的条件判断为false),反之亦然)
啦啦啦 好啦,这样效果就实现了~
更多推荐
已为社区贡献17条内容
所有评论(0)