gpt4 book ai didi

vue.js - ul li背景颜色变化vuejs

转载 作者:行者123 更新时间:2023-12-01 12:04:12 25 4
gpt4 key购买 nike

请帮忙。我需要来自具有背景颜色的数组的 N 个数字的列表,例如,单击每个 li 元素时黄色和粉红色会发生变化。
喜欢 1 背景:黄色, 2 背景:粉红色, 3 底色:黄色 4 背景:粉色等

我现在在每次点击事件中为所有 li 元素设置了相同的背景颜色,颜色在变化,但所有元素都在同时变化。

new Vue({
el: '#app',
data: {
isDark: false,
log: [],
count: 1
},
methods:{
somefunc: function(){
this.log.push(this.count++);
this.isDark = !this.isDark;
}
}
});



<script src="https://unpkg.com/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<div >
<ul>
<li v-for="(ing, i ) in log" :class="[ isDark ? 'background-yellow' : 'background-pink' ]" >
{{ ing }}
</li>
</ul>
<button @click="somefunc">Press</button>
</div>
</div>

最佳答案

所有项目的颜色都发生变化是有道理的,因为它们都引用了在 Vue 实例上定义的同一 isDark 实例。相反,您需要为 log 数组中的每个元素设置一个 isDark 属性,或者为每个索引及其 isDark 值。使用单独的数组:

data: {
logColors: [],
...
},
methods: {
somefunc () {
this.log.push(this.count++)
this.logColors.push(!this.isDark)
}
}

li 元素的模板标记中:

<li ... :class="logColors[i].isDark ? 'background-yellow' : 'background-pink'">
...
</li>

如果您想将 isDark 作为 log 中项目的属性:

脚本

methods: {
somefunc () {
this.log.push({ value: this.count++, isDark: !this.isDark })
}
}

标记

<li ... :class="log[i].isDark ? 'background-yellow' : 'background-pink'">
{{ing.value}}
</li>

关于vue.js - ul li背景颜色变化vuejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59415774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com