vue實現(xiàn)div單選多選功能
更新時間:2020年07月16日 11:08:13 作者:sch695241721
這篇文章主要為大家詳細介紹了vue實現(xiàn)div單選多選功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
vue實現(xiàn)div單選多選功能,供大家參考,具體內容如下
單選
單選:

多選:

單選功能
DOM層:
<div class="labeloption" :class="{checked:ageActive == 11}" @click="changeStatus(11)">0-16歲</div>
<div class="labeloption" :class="{checked:ageActive == 12}" @click="changeStatus(12)">17-25歲</div>
<div class="labeloption" :class="{checked:ageActive == 13}" @click="changeStatus(13)">26-35歲</div>
<div class="labeloption" :class="{checked:ageActive == 14}" @click="changeStatus(14)">36-45歲</div>
<div class="labeloption" :class="{checked:ageActive == 15}" @click="changeStatus(15)">46-55歲</div>
<div class="labeloption" :class="{checked:ageActive == 16}" @click="changeStatus(16)">55歲以上</div>
js層:
new Vue({
el: '#home',
data() {
return {
ageActive:11 //初始選中狀態(tài)的元素id
}
},
methods: {
changeStatus(number){
this.ageActive = number;
}
}
})
單選功能主要利用的是vue的數(shù)據(jù)驅動原則改變當前dom元素的狀態(tài)
多選功能
DOM層:
<div class="labeloption checked" @click="changeStatus($event,11)">0-16歲</div> <div class="labeloption" @click="changeStatus($event,12)">17-25歲</div> <div class="labeloption" @click="changeStatus($event,13)">26-35歲</div> <div class="labeloption" @click="changeStatus($event,14)">36-45歲</div> <div class="labeloption" @click="changeStatus($event,15)">46-55歲</div> <div class="labeloption" @click="changeStatus($event,16)">55歲以上</div>
js層:
new Vue({
el: '#home',
data() {
methods: {
changeStatus(e,number){
if (e.target.className.indexOf("checked") == -1) {
e.target.className = "labeloption checked"; //選中div樣式
} else {
e.target.className = "labeloption";//未選中div樣式
}
}
})
多選功能于單選功能不同,沒有用到vue的數(shù)據(jù)驅動原則,單純的操作dom元素,跟vue沒啥關系。
關于vue.js組件的教程,請大家點擊專題vue.js組件學習教程進行學習。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
vuex實現(xiàn)像調用模板方法一樣調用Mutations方法
今天小編就為大家分享一篇vuex實現(xiàn)像調用模板方法一樣調用Mutations方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
vue給數(shù)組中對象排序 sort函數(shù)的用法
這篇文章主要介紹了vue給數(shù)組中對象排序 sort函數(shù)的用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09

