zoukankan      html  css  js  c++  java
  • uni-app选中状态并改变颜色

    思路    
    定义一个数组来记录被点击的元素  arr
    数组通过indexOf来来查找 
    如果有,激活类就是true
    没有; 激活类为false
    这一步最关键的是查找的内容就是显示出来的index,
    		
    点击的时候传递参数(key),通过indexOf查找
    如果没有 push到arr;
    若是有;splice删除这个元素
    
    
    
    
    看了上面这个一段代码,发现的问题
    1==》 rSelect在data中声明的是一个数组; 但是在html中 indexOf这个方法是对字符串使用的   【数组也有indexOf  用法跟字符串是一样的哈  ok】
    2==》 rSelect在data中声明的是一个数组; 在方法中又是indedxOf和push对它进行操作,这样也可以? 【可以】
    splice('删除元素的起始下标','删除个数')它是对数组进行操作的   
    它到底是一个啥子类型的;
    
    =====================================
    这个文章就可以就可以解决你的疑问了 https://blog.csdn.net/weixin_41829196/article/details/90482193
    
    var arr = [1,2,3];
    console.log(arr.indexOf(1));//0
    console.log(arr.indexOf(2));//1
    console.log(arr.indexOf(3));//2
    console.log(arr.indexOf(4));//-1
    
    该方法返回某个元素在数组中的位置。
    返回元素在数组中的位置,若没检索到,则返回 -1。
    array.indexOf(item,start)
    参数	描述
    item	必须。查找的元素
    start	可选。规定检索的位置,它的合法取值是 0 到 stringObject.length - 1
    ================================
    
    字符串的indexOf和数组的indexOf用法一致的哈
    字符串的indexOf和数组的indexOf用法一致的哈
    字符串的indexOf和数组的indexOf用法一致的哈
    
    
    <template>
      <view>
         <view class="deom-flex">
             <view class="defa" :class="{'active': rSelect.indexOf(index)!=-1}"
                v-for="(value,index) in infoArr" 
                :key="index" @tap="tapInfo(index)">
                  {{value.name}}
             </view>
         </view>
      </view>
    </template>
    
    <script>
    export default {
     data(){
       return{
          infoArr:[{name:"直播"},{name:"视频"},{name:"手游"}],
           rSelect:[]
      }
    },
    methods:{
    	tapInfo(e) {
    		console.log(this.rSelect )//是数组,数组也有indexOf
    		if (this.rSelect.indexOf(e) == -1) {
    			console.log(e)//打印下标
    			this.rSelect.push(e);//选中添加到数组里
    		} else {
    			this.rSelect.splice(this.rSelect.indexOf(e), 1); //取消
    		}
    	}
    },
    }
    </script>
    
    <style scoped>
    .deom-flex{
      display: flex;
    }
    .defa{
    	 100rpx;
    	height: 50rpx;
    	margin-right: 10rpx;
    }
    .active{
    	 100rpx;
    	height: 50rpx;
    	color: white;
    	border: 1px solid #e5e5e5;
    	background-color: #ff5d00;
    }
    </style>
    

    作者:流年少年
    出处:https://www.cnblogs.com/ishoulgodo/

    想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,或者关注博主,在此感谢!

    万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!

    想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

    支付宝
    微信
    本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    HDU 1203 【01背包/小数/概率DP】
    HDU 2955 【01背包/小数/概率DP】
    2018 计蒜之道 初赛 第三场
    判断一个多边形是顺时针还是逆时针的方法
    牛客网练习赛18 A 【数论/整数划分得到乘积最大/快速乘】
    Codeforces Round #311 (Div. 2)
    暑期训练狂刷系列——Hdu 3506 Largest Rectangle in a Histogram (单调栈)
    暑期训练狂刷系列——poj 3468 A Simple Problem with Integers (线段树+区间更新)
    暑期训练狂刷系列——Foj 1894 志愿者选拔 (单调队列)
    暑期训练狂刷系列——poj 3264 Balanced Lineup(线段树)
  • 原文地址:https://www.cnblogs.com/ishoulgodo/p/13648791.html
Copyright © 2011-2022 走看看