<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.app {
width: 300px;
margin: 100px auto;
}
span {
display: inline-block;
}
.btn {
width: 30px;
height: 30px;
border: 1px solid #DCDCDC;
border-radius: 50%;
cursor: pointer;
}
.active1{
background: red;
}
.unactiveRadio {
background: #fff;
}
</style>
</head>
<body>
<div class="app">
<!--1.toggleClass切换-->
<div class="demo1">
<span class="btn" :class="{'active1':ischoose}" @click="toggleDemo1"></span>
</div>
<!--2.单选-->
<ul class="demo2">
<li class="btn" v-for="(list,index) in radioList" @click="selectRadio(list,index)" :class="{'active1':list.active,'unactiveRadio':!list.active}">{{list.select}}</li>
</ul>
<!--3.多选-->
<ul class="demo3">
<li class="btn" v-for="(list,index) in checkList" @click="check(list,index)" :class="{'active1':list.active}">{{list.check}}</li>
</ul>
</div>
</body>
</html>
<script src="vue.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
new Vue({
el: ".app",
data() {
return {
ischoose: false,
activeRadio: false,
radioList: [{
select: ''
},
{
select: ''
}
],
checkList: [{
check: ''
},
{
check: ''
},
{
check: ''
}
]
}
},
methods: {
toggleDemo1: function() {
this.ischoose = !this.ischoose
},
selectRadio(list, index) {
this.$nextTick(function() {
this.radioList.forEach(function(list) {
Vue.set(list, 'active', false);
});
Vue.set(list, 'active', true);
});
},
check(list, index) {
if(list.active){
Vue.set(list, 'active', false);
}else{
Vue.set(list, 'active', true);
}
}
}
})
</script>
vue---------toggle class切换单选多选class切换
最新推荐文章于 2024-07-01 17:56:59 发布