gpt4 book ai didi

button - 事件处理在 Vue.js v-for 循环中动态创建的按钮

转载 作者:搜寻专家 更新时间:2023-10-30 22:16:17 24 4
gpt4 key购买 nike

我有一个 v-for 循环,其中为每次迭代创建一个按钮。我正在尝试制作一个切换处理程序,点击按钮将切换按钮的颜色。但是由于按钮是动态创建的,所以它们的所有颜色都在变化....

<div class="pets" v-for="pet in pets" :key="pet.id">
<button class="favorite" v-on:click="toggle">
<i v-bind:class="[{ 'red' : favorited }, 'material-icons']">favorite</i>
</button>
</div>

pets 数组正在用一个 http 调用填充。我的脚本如下所示:

<script>
export default {
name: 'home',
data() {
return {
pets: [],
favorited: false
}
},
methods: {
toggle: function() {
this.favorited = !this.favorited;
}
},
}

Style 标签只是改变颜色

<style scoped>
.red {
color: red;
}

本质上,我正在尝试创建一个收藏夹按钮,您可以在其中切换收藏宠物数组中的对象。我知道为什么我的方法会激活我所有的按钮。由于收藏不是按钮独有的并且来自数据。因此,当 favorited = true 时,“red”类将绑定(bind)到我的所有按钮。我的问题是如何将“红色”类绑定(bind)到我单击的按钮?我对 Vue 比较陌生,这让我发疯了,哈哈!有人请告诉我如何解决这个问题。

最佳答案

在 pets 数组中为您的宠物对象添加一个 favorited 属性。然后使用该属性。

<div class="pets" v-for="pet in pets" :key="pet.id">
<button class="favorite" v-on:click="pet.favorited = !pet.favorited">
<i v-bind:class="[{ 'red' : pet.favorited }, 'material-icons']">favorite</i>
</button>
</div>

Example .

如果你不想修改宠物对象,那么here is an alternate way .

关于button - 事件处理在 Vue.js v-for 循环中动态创建的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43956662/

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