开始是蓝色
再点击变红,再点击就会恢复原来颜色
还可以点击某一个进行切换
下面上代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id="app">
<div style="width: 80px;height: 80px;background-color: blue;" @click="fun2">显示</div>
<div v-for="(coin,index) in num" :key='index' style="border: 1px solid black;" @click="fun1(coin)">
{{num.name}}
<div v-if="coin.flag" style="background-color: cyan;width: 100%;height: 100px;"></div>
<div v-else style="background-color: red;width: 100%;height: 100px;"></div>
</div>
</div>
</body>
<script>
const vue = new Vue({
el: "#app",
data: {
num: [],
},
created() {
// 请求接口 获取的数据
let data = [
{
name: '测试一'
},
{
name: '测试二'
},
{
name: '测试三'
}
]
this.num = data.map(element => {
this.$set(element, 'flag', true)
return element
});
},
methods: {
fun1(item) {
item.flag = !item.flag
},
fun2(){
//遍历这个数组,对所有的flag取反
this.num.forEach((item,index,arr)=>{
item.flag = !item.flag
})
}
}
})
</script>
</html>