【发布时间】:2021-11-25 14:47:36
【问题描述】:
我为单个项目添加了手风琴,它工作正常,但后来我添加了 for 循环,现在当我点击任何项目时,所有项目都在展开。
<template>
<ul class="level-0-wrp" v-if="headerDesktopMenu.menu.menu_items">
<li class="level-0" v-for="(menu, index) in headerDesktopMenu.menu.menu_items" :key="index" :class="accordionClasses" v-if="headerDesktopMenu.menu.menu_items">
<a class="title" @click="toggleAccordion">{{ menu.item_name }}</a>
<ul class="level-1-wrp" v-if="menu.childrens">
<li class="level-1" v-for="(submenuone, indexone) in menu.childrens" :key="indexone" v-if="menu.childrens">
<a class="title">{{ submenuone.item_name }}</a>
</li>
</ul>
</li>
</ul>
</template>
<script>
export default {
data () {
return {
isOpen: false
}
},
methods: {
toggleAccordion () {
this.isOpen = !this.isOpen;
}
},
computed: {
accordionClasses () {
return {
'is-closed': !this.isOpen,
'is-primary': this.isOpen,
'is-dark': !this.isOpen
};
}
}
}
如图所示,如果我点击男性、女性和配饰,则会展开。
【问题讨论】:
-
你的应用是对所有人开放,只有一个状态,你需要把它做成一个状态数组,或者在菜单模型上设置它是否打开
标签: javascript vue.js vuejs2 accordion