VUE使用dom点击单层数组、双层数组高亮问题uk组件

博客主要探讨VUE里点击单层数组、双层数组的高亮问题,包括点击各不干涉以及第二次点击颜色消失的情况,其主要原理是利用$refs获取dom对象的最高级样式进行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VUE里点击单层数组、双层数组高亮问题

在这里插入图片描述
a)点击各不干涉 b)第二次点击颜色消失
.vue.

 <ul class="uk-nav-default " uk-nav="multiple: true">                                      
       <li v-for="(resources,index) in resources" :key="index" class="uk-parent uk-				 text-truncate" >
       //一层
       <a class="lf-box-xian" @click="classlight1(index)" ref="classlight">&nbsp;&nbsp;&nbsp;&nbsp;{{resources.name}}</a>
       <ul class="uk-nav-sub">
           <li v-for="(items,indexer)  in resources.items" :key="indexer" class="uk-text-truncate">
           //二层
           <a class="lf-box-xian" @click="classjump(index,indexer,items)" :ref="'classlight1'+index+indexer">{{items.name}}</a>                       
           </li>
       </ul>
       </li>
   <li class="uk-margin-remove lf-box-add" >
       <a  uk-toggle="target: #add-class">添加班级</a>
   </li>   
</ul>

..js.

      //一层亮
        classlight1(m){
            if(this.$refs.classlight[m].style.color==""){
                //清除颜色
                for(let i of this.$refs.classlight){
                    i.style.color=""            
                 }
               this.$refs.classlight[m].style.color="red"
               //boo=ture;  

            }else{  
               this.$refs.classlight[m].style.color=""
            }
        },
       // 二层亮
        classjump(n,m){
            // console.log( Array.of(this.$refs))
            // console.log(this.$refs[classlight1])
            // console.log(n+''+m)
            // this.$refs['classlight1'+n+m][0].style.color='red'
            if(this.$refs['classlight1'+n+m][0].style.color==""){
                for(let i in this.$refs){                 
                    if(i.indexOf('classlight1')>-1){
                        this.$refs[i][0].style.color=""
                    }
                    // i['classlight1'+n+m][0].style.color="red"
                    // console.log(i['classlight1'+n+m][0].style.color)         
                 }
                    
                 this.$refs['classlight1'+n+m][0].style.color='red'
               //boo=ture;  

            }else{  
                this.$refs['classlight1'+n+m][0].style.color=''
            }
        },

主要原理是利用$refs获取dom对象的最高级样式进行操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值