【发布时间】:2020-01-15 14:11:04
【问题描述】:
我正在构建一个简单的 vue 手风琴,当我单击一个手风琴时,它们都会打开,这不是我所追求的行为。有没有办法只打开点击的那个?我以为“这个”会解决这个问题,但我没有运气。
html:
<div id="accordion" class="accordion-container">
<div class="accordion" :class="accordionClasses">
<div class="accordion-header" @click="toggleAccordion">
Accordion 1
<i class="fal fa-plus" />
<!-- <i class="fal fa-minus" /> -->
</div>
<div class="accordion-body">
<div class="accordion-content">Lorem ipsum dolor sit amet, consectetur adipiscing elit. <strong>Pellentesque risus mi</strong></div>
</div>
</div>
<div class="accordion" :class="accordionClasses">
<div class="accordion-header" @click="toggleAccordion">
Accordion 2
<i class="fal fa-plus" />
<!-- <i class="fal fa-minus" /> -->
</div>
<div class="accordion-body">
<div class="accordion-content">Lorem ipsum dolor sit amet, consectetur adipiscing elit. <strong>Pellentesque risus mi</strong></div>
</div>
</div>
<div class="accordion" :class="accordionClasses">
<div class="accordion-header" @click="toggleAccordion">
Accordion 3
<i class="fal fa-plus" />
<!-- <i class="fal fa-minus" />-->
</div>
<div class="accordion-body">
<div class="accordion-content">Lorem ipsum dolor sit amet, consectetur adipiscing elit. <strong>Pellentesque risus mi</strong></div>
</div>
</div>
</div>
js:
export default {
name: 'trial-page',
data() {
return {
isOpen: false
};
},
computed: {
accordionClasses: function() {
return {
'is-closed': !this.isOpen
};
}
},
methods: {
toggleAccordion: function() {
this.isOpen = !this.isOpen;
}
}
};
【问题讨论】:
-
您希望一次只打开一个,还是希望能够同时打开多个? (如果点击了多个)
-
是的,一次打开多个。最终会有一个“全部打开”“全部关闭”,但现在只希望一次打开一个能够打开所有的。
标签: javascript html vue.js