关于选中,取消选中,和选中同分类下的其他

常见于商城购买页如图所示:
请添加图片描述

完整代码如下:

css部分:
:class="[seleIndex[index] == index_one ? 'new_style' : '']"
.new_style{
	background-color: #e9445a !important;
	color: #FFFFFF;
}
js部分
const selectdata = reactive({select:[],seleIndex:[]})
	const {select,seleIndex} = toRefs(selectdata)
	function choIce(att_val,att_name,index,index_one){
		// 切换选中添加颜色
		let IN = selectdata.select.findIndex(item=>item.att_name == att_name)
		if(IN > -1){
			let MB = selectdata.select.findIndex(item=>item.att_val == att_val)
			if(MB > -1){
				//因为selectdata.select是已经选中的,进入到了这里,说明已经选中的属性是att_name,值是att_val
				//但是注意,这里是点击事件,所以这里我们是取消选中
				selectdata.select.splice(IN,1)
				selectdata.seleIndex[index] = -1
			}else{
				//选中当前分类下的其他属性
				selectdata.select[IN] = {att_name,att_val}
				selectdata.seleIndex[index] = index_one
			}
		}else{
			//因为刚开始打开这个界面selectdata.select是空的,所以IN > -1不成立,这时候我们添加元素进去
			
			selectdata.select.push({att_name,att_val})
			selectdata.seleIndex[index] = index_one
		}
博客
rabbitmq
04-19 308
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值