最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue如何自定義按鈕單選和多選

 更新時間:2023年07月03日 08:39:03   作者:嶼-·  
這篇文章主要介紹了vue如何自定義按鈕單選和多選問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

vue自定義按鈕單選和多選

自定義按鈕單選

在這里插入圖片描述

單選效果圖如上

用for循環(huán)出每一項(xiàng)的Index作為判斷依據(jù),index改變后 把index給num,改變其動態(tài)樣式。此處的樣式用的是tm-vuetify框架里的樣式,動態(tài)的樣式必須寫在style里,否則不起作用。

<view class=" flex flex-wrap">
	<view class="type flex-center text-size-n ma-20 mb-5 py-20 px-20" v-for="(item,index) in punishList" :key="index" :class="[num == index ? 'type_tips' : '']" @click="changeIndex(index)">{{item}}</view>
</view>
num:0,
changeIndex(index){
	this.num = index
},
.type{
		background: #f0f0f0;
		color: #7c7c7c;
	}
.type_tips{
	  background: #ffa16a;
	  color: #fff;
	}

自定義按鈕多選和反選

在這里插入圖片描述

多選效果圖如上

利用includes()匹配來實(shí)現(xiàn),

includes的用法:用于搜索篩選關(guān)鍵字 后把數(shù)據(jù)重新渲染列表

//使用includes方法,查找checkedGroup的選項(xiàng)
<view class=" flex flex-wrap">
<view class="type flex-center text-size-n ma-20 mb-5 py-20 px-20" v-for="item in forceList" @click="handActive(item)" :class="{type_tips:checkedGroup.includes(item)}">{{item}}</view>
</view>
handActive(v,i){ 
	if(this.checkedGroup.includes(v)){
	// 反選的
		this.checkedGroup=this.checkedGroup.filter(function (ele){return ele != v;});
	}else{
	// 選中的
		this.checkedGroup.push(v);
	}
},
.type{
	background: #f0f0f0;
	color: #7c7c7c;
}
.type_tips{
	background: #ffa16a;
    color: #fff;
}

vue div 單選、多選,多選且最多只能選擇三個

先把準(zhǔn)備工作做好

1. css

.contilor{
	width: 50%;
	margin: 5% auto;
}
.box{
	display: flex;
	flex-wrap: wrap;
}
.item{
	padding: 6px 8px;
	border: 1px solid #3C9CFF;
	margin: 8px 6px 0 10px;
	font-size: 12px;
	border-radius: 6px;
}
.item1{
	background-color: #3C9CFF;
	color: #fff;
}

2. js數(shù)據(jù)格式

<script type="text/javascript">
let itemData = [{
		id: '1',
		text: '識別性',
		select:false
	},
	{
		id: '2',
		text: '獨(dú)特性',
		select:false
	},
	{
		id: '3',
		text: '易記性',
		select:false
	},
	{
		id: '4',
		text: '識別',
		select:false
	},
	{
		id: '5',
		text: '學(xué)識',
		select:false
	},
	{
		id: '6',
		text: '持久性',
		select:false
	},
	{
		id: '7',
		text: '易傳播',
		select:false
	}
];
new Vue({
	el: '#app',
	data() {
		return {
			itemList:itemData
		}
	},
	mounted() {
	},
	methods: {
	}
})
</script>

3. html

<div class="box">
	<div class="item" v-for="(item,i) in itemList" :key="i">
		<span>{{item.text}}</span>
	</div>
</div>

單選

1.效果圖

2.html

<div class="box">
	<div class="item" v-for="(item,i) in itemList" :key="i" :class="{'item1':index === i}"
		@click="onSelect(i)">
		<span>{{item.text}}</span>
	</div>
</div>

 3.js

data() {
	return {
		itemList: itemData,
		index: 0,
	}
},
methods:{
    onSelect(i) {
	    this.index = i
    }
}

多選

1.效果圖

2.html

<div class="item" v-for="(item,i) in itemList" :key="i" :class="{'item1':item.select}"
	@click="onSelect1(i)">
	<span>{{item.text}}</span>
</div>
</div>

3.js

data() {
	return {
		itemList: itemData
	}
},
methods:{
    onSelect1(i) {
	    this.itemList[i].select = !this.itemList[i].select;
    }
}

多選且最多只能選擇三個,選擇第四個會出現(xiàn)提示,前面的也可以取消

1.效果圖

2.html

<div class="box">
	<div class="item" v-for="(item,i) in itemList" :key="i" :class="{'item1':item.select}"
		@click="onSelect2(i)">
		<span>{{item.text}}</span>
	</div>
</div>

3.js

data() {
	return {
		itemList: itemData,
		chooseData: []
	}
},
methods:{
    onSelect2(i) {
	    let text = this.itemList[i].text;
	    if (!this.itemList[i].select && this.chooseData.length > 2) {
	    	alert("最多只能選擇3個")
	   	    return
	    }
	    this.itemList[i].select = !this.itemList[i].select;
	    //選中并且數(shù)組小于3則追加
	    if (this.itemList[i].select && this.chooseData.length < 3) {
		    this.chooseData.push(text)
	    }
	    //取消選中
	    if (!this.itemList[i].select) {
		    this.chooseData.splice(this.chooseData.indexOf(text), 1);
	    }
    }
}

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

鄂州市| 余庆县| 富宁县| 苍山县| 文昌市| 长兴县| 新竹市| 海淀区| 东乌| 泗水县| 兴业县| 泸定县| 内黄县| 石屏县| 潼关县| 山阴县| 沅陵县| 长春市| 疏附县| 济源市| 兰西县| 津南区| 呼伦贝尔市| 安康市| 友谊县| 科尔| 巴塘县| 淅川县| 湄潭县| 开远市| 邯郸市| 乌兰察布市| 金山区| 武山县| 镇安县| 慈利县| 镇沅| 通许县| 宁海县| 开原市| 大渡口区|