uniapp,点击选中并改变颜色,第二次点击取消选中状态

一、效果图

二、代码实现

字符串的indexOf和数组的indexOf用法一致!

arr.indexOf(item) 该方法返回某个元素在数组中的位置。若没检索到,则返回 -1。

c 复制代码
关键代码:(通过:class绑定)
:class="selectList.indexOf(sub.type) !== -1 ? 'right_item right_item_active':'right_item'"

2.1html

c 复制代码
		<view class="right">
			<!-- 通过(selectList.indexOf(sub.type) !== -1)来判断选中的数组里,是否有该元素。
				点击时,如果有,会移除;如果没有,会添加上 
			-->
			<view :class="selectList.indexOf(sub.type) !== -1 ? 'right_item right_item_active':'right_item'"
				v-for="(sub,index) in leftList[tabindex].children" :key="index" @click="rightBtn(sub,index)">
				{{ sub.type }}
			</view>
		</view>

2.2js

c 复制代码
			//点击右侧
			rightBtn(sub, index) {
				console.log(sub, index)
				this.rightindex = index;

				//uniapp 数组添加不重复元素
				if (this.selectList.includes(sub.type)) {
					this.selectList = this.selectList.filter((item) => {
						return item != sub.type;
					});
				} else {
					this.selectList.push(sub.type);
					this.selectList = [...new Set(this.selectList)]; // 数组去重
					if (this.selectList.length > 3) {
						uni.showToast({
							title: "最多选3个",
							icon: "none"
						});
						this.selectList.splice(3, this.selectList.length - 3);
					}
				}
			},

完成~

相关推荐
abcefg_h1 分钟前
GO Web开发详细流程(无框架,restful风格,MVC架构)
开发语言·前端·golang
码界奇点4 分钟前
基于Spring Cloud Alibaba与Vue.js的分布式在线教育系统设计与实现
前端·vue.js·分布式·spring cloud·架构·毕业设计·源代码管理
fruge4 分钟前
Web Components 封装实战:打造可复用的跨框架组件
前端
糖墨夕4 分钟前
超越随机:JavaScript中真正可靠的唯一标识符生成策略
前端·javascript
码界奇点4 分钟前
基于SpringBoot3+Vue的前后端分离电商系统设计与实现
前端·javascript·vue.js·spring·毕业设计·鸿蒙系统·源代码管理
qq_4244091910 分钟前
uniapp,通过webview内嵌h5页面,如何修改h5的大小
uni-app
wordbaby13 分钟前
macOS ⇄ Android 局域网无线传输 APK 终极方案
前端
m0_4711996314 分钟前
【vue】通俗易懂的剖析vue3的响应式原理
前端·javascript·vue.js
LYFlied18 分钟前
【一句话概括】前端项目包管理器怎么选?
前端·npm·pnpm·yarn
Sui_Network21 分钟前
Sui 主网升级至 V1.61.2
大数据·前端·人工智能·深度学习·区块链