I am building a simple vue accordion, when I click one accordion they all open and that is not the behavior I am after. Is there a way to only open the one clicked? I assumed "this" would take care of that but I am no having luck.
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;
}
}
};