vue点击标签切换选中及互相排斥操作
网络编程 2021-07-04 14:06www.168986.cn编程入门
这篇文章主要介绍了vue点击标签切换选中及互相排斥操作,具有很好的参考价值,希望对大家有所帮助。一起跟随长沙网络推广过来看看吧
单身和已婚不能同时选中,不了解保险和已了解保险不能同时选中。
同时各个标签点击可以取消选择
//html <li> <span class="fill-title">与我相关</span> <div> <van-button v-for="(item, index) in myself" :key="index" @click="checkButton('myself', item.id)" :class="item.isFlag ? 'current' : ''" >{{item.title}}</van-button> </div> </li> <li> <span class="fill-title">标签</span> <div> <van-button v-for="item in biaoqian" :key="item.id" @click="checkButton('tag', item.id)" :class="item.isFlag ? 'current' : ''" >{{item.title}}</van-button> </div> </li>
数据
myself: [ { id: 1,title: "亲属", isFlag: false }, {id: 2,title: "同乡",isFlag: false}, {id: 3, title: "同学",isFlag: false }, {id: 4,title: "同事", isFlag: false},], biaoqian: [ {id: 1, title: "已婚",type: 1,isFlag: false }, {id: 2,title: "单身",type: 1,isFlag: false }, {id: 3,title: "有娃",isFlag: false }, {id: 4,title: "有房", isFlag: false }, {id: 5,title: "有车",isFlag: false}, {id: 6,title: "不了解保险",isFlag: false,type: 2}, {id: 7,title: "已了解保险",isFlag: false,type: 2} ],
js
//标签只能选中一个 filterData(arr = [], index) { let val = ""; arr.forEach(item => { if (item.id == index) { item.isFlag = !item.isFlag; val = item.isFlag ? item.title : ""; } else { item.isFlag = false; } }); return val; }, checkButton(val, index) { if (val === "tag") { let data = []; this.biaoqian.forEach(item => { if (item.id == index) { // a 记录当前标签状态是否选中,为了取消标签状态 let a = item.isFlag; item.isFlag = !item.isFlag; if (item.type) { this.biaoqian.forEach(e => { if ((e.type == 1 && index < 3) || (e.type == 2 && index > 5)) { //先把同一个类型的标签都置为false e.isFlag = false; if (e.id == index) { e.isFlag = a ? false : !e.isFlag; } } }); } } }); let arr = this.biaoqian.filter(item => { return item.isFlag; }); arr.forEach(item => { data.push(item.title); }); this.personItem.labelList = data; } else if (val === "sex") { this.personItem.sex = this.filterData(this.sexArr, index); } else { this.personItem.relation = this.filterData(this.myself, index); } }
补充知识:vue选中与取消简单实现
我就废话不多说了,大家还是直接看代码吧~
<li v-for="(item,index) in assign" :key="index" @click="selected(item)" :class="{'active':item.isShow}"> selected(item) { if (!item.isShow) { item.isShow = true; this.selectedList.push(item.id) } else { item.isShow = false; let index = this.selectedList.indexOf(item.id); if (index > -1) { this.selectedList.splice(index, 1); } } },
以上这篇vue点击标签切换选中及互相排斥操作就是长沙网络推广分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持狼蚁SEO。
编程语言
- 机械手焊接机器人编程 机械手焊接设备编程
- vb数据库编程实例,vb做数据库
- tiobe世界编程语言排行榜,全球编程语言排行
- 成都java编程培训 成都it编程培训中心
- 编程基础培训,编程基础知识培训
- flash游戏编程基础教程,flash游戏开发教程
- 不会英语能学编程吗 不会英语可以学程序员吗
- 爱心代码编程C语言 爱心代码编程c语言公式
- c语言编程学习入门 c语言编程快速入门
- 西门子plc编程培训 西门子plc编程培训班
- 哪里可以学编程 台州哪里可以学编程
- 少儿编程哪个好 少儿编程哪个品牌好
- 编程是什么意思,图形编程是什么意思
- c语言编程软件下载,c语言编程软件在哪下载
- java编程软件下载,java编程下载手机版
- ug编程培训学校,ug编程培训教程