vue实现点击元素给该元素class(多选)
时间: 2023-08-09 18:06:21 浏览: 112
你可以使用 Vue.js 的 v-bind:class 指令来实现点击元素给该元素 class 的效果,具体步骤如下:
1. 在 Vue 实例中定义一个数组和一个方法,用来存储用户选择的元素和更新元素的 class。
```
data() {
return {
selectedElements: []
}
},
methods: {
toggleClass(element) {
if (this.selectedElements.includes(element)) {
this.selectedElements.splice(this.selectedElements.indexOf(element), 1);
} else {
this.selectedElements.push(element);
}
}
}
```
2. 在模板中使用 v-for 指令来渲染元素列表,使用 v-bind:class 指令来绑定元素的 class。
```
<div v-for="element in elements" :key="element.id" :class="{ 'selected': selectedElements.includes(element) }" @click="toggleClass(element)">
{{ element.label }}
</div>
```
3. 在元素的 class 中使用一个对象来定义多个 class,当用户点击一个元素时,将该元素添加到 selectedElements 数组中,并使用 toggleClass 方法来更新元素的 class。当用户再次点击该元素时,将其从 selectedElements 数组中删除,并更新元素的 class。
```
data() {
return {
elements: [
{ id: 1, label: 'Element 1' },
{ id: 2, label: 'Element 2' },
{ id: 3, label: 'Element 3' },
],
selectedElements: []
}
},
methods: {
toggleClass(element) {
if (this.selectedElements.includes(element)) {
this.selectedElements.splice(this.selectedElements.indexOf(element), 1);
} else {
this.selectedElements.push(element);
}
}
}
```
```
<div v-for="element in elements" :key="element.id" :class="{ 'selected': selectedElements.includes(element) }" @click="toggleClass(element)">
{{ element.label }}
</div>
```
当用户点击一个元素时,该元素的 class 将会被更新为 selected,当用户取消选择该元素时,其 class 将会被移除。你可以在 Vue 实例中使用 selectedElements 数组来处理用户的选择。
阅读全文