mouseenter/mouseleaveイベントでv-forループ内の単一要素のクラスを変更しようとしていますが、混乱していますそれがどのようにして、つかまれている要素のクラスだけが変更されるようにするか。Vue.jsのv-forループ内のmouseenter/mouseleaveイベントの要素のクラスを変更します
クラスを変数にバインドしようとしましたが、明らかにリストのすべての要素が変更されます。
<template>
<ul>
<li class="item" v-for="item in items" @mouseenter="showInfoBar()" @mouseleave="hideInfoBar()">
<span class="infobar" :class="{ show : infoBar }"> </span>
</li>
</ul>
</template>
<script>
export default {
name: 'ItemsList',
props: ['items'],
data() {
return {
infoBar: false
}
},
methods: {
showInfoBar() {
this.infoBar = true
},
hideInfoBar() {
this.infoBar = false
}
}
}
</script>
これらの回答は唯一の2つのオプションであり、確かに追加コンポーネントは宣言的でエレガントです。 – master00
それだけでなく、指定されたコレクション内の各アイテムの状態を個別に処理することもできます。これは配列で処理するよりも優れています。 – bretanac93