vue.js - Vue 点击切换颜色

查看:672
本文介绍了vue.js - Vue 点击切换颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

第一次点击span 字体变颜色,再次点击恢复原来颜色,做成选中的效果

代码:

<li><span>健康医疗</span><span>生活服务</span><span>旅游</span><span>金融</span></li>
<li><span>信息安全</span><span>广告营销</span><span>数据服务</span><span>智能硬化</span></li>
<li><span>文化娱乐</span><span>网络招聘</span><span>分类信息</span><span>电子商务</span></li>
<li><span>移动互联网</span><span>企业服务</span><span>社交网络</span></li>

我是小白>_< 大神们,这个怎么弄???

。。。有木有选择span标签进行判断的方法>_<。。。

解决方案

修改后:
<ul v-for="(item,index) in lidata">

 <li><span :class="{active:index==isActive}"  @click="changeClass(index)"> {{item.name}}
</span></li>  

</ul>

data(){

    return{
    isActive:-1,
    lidata:[
    {index:0,name:'健康医疗'},
    {index:1,name:'生活服务'},
    {index:2,name:'旅游'},
    {index:3,name:'金融'},
    {index:4,name:'信息安全'},
    {index:5,name:'广告营销'},
    {index:6,name:'数据服务'},
    {index:7,name:'智能硬化'},
    {index:8,name:'文化娱乐'},
    {index:9,name:'网络招聘'},
    {index:10,name:'分类信息'},
    {index:11,name:'电子商务'},
    {index:12,name:'移动互联网'},
    {index:13,name:'企业服务'},
    {index:14,name:'社交网络'}
    ]
    }
   }
   
changeClass(index){
 this.isActive=index;
},


实现多选:

 <ul v-for="(item,index) in lidata">
<li><span :class="{active:item.checked}"  @click="changeClass(item)"> {{item.name}}</span>
 </li>  

</ul>

changeClass(item){

 if(typeof item.checked=='undefined'){
    this.$set(item,"checked",true)
 }else{
   item.checked=!item.checked
 }
},


限制三次:
  changeClass(item){
    let a=document.getElementsByClassName('active'); 
   if(typeof item.checked=='undefined'){
     if(a.length<=3){
      this.$set(item,"checked",true); 
   }else{
    alert(2222222222)
   }  
  }else{
   item.checked=!item.checked; 
  }
},

这篇关于vue.js - Vue 点击切换颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆