Skip to content

Latest commit

 

History

History
45 lines (41 loc) · 1.31 KB

File metadata and controls

45 lines (41 loc) · 1.31 KB
<template>
  <ion-accordion-group ref="accordionGroup">
    <ion-accordion value="first">
      <ion-item slot="header" color="light">
        <ion-label>First Accordion</ion-label>
      </ion-item>
      <div class="ion-padding" slot="content">First Content</div>
    </ion-accordion>
    <ion-accordion value="second">
      <ion-item slot="header" color="light">
        <ion-label>Second Accordion</ion-label>
      </ion-item>
      <div class="ion-padding" slot="content">Second Content</div>
    </ion-accordion>
    <ion-accordion value="third">
      <ion-item slot="header" color="light">
        <ion-label>Third Accordion</ion-label>
      </ion-item>
      <div class="ion-padding" slot="content">Third Content</div>
    </ion-accordion>
  </ion-accordion-group>

  <ion-button @click="toggleAccordion()">Toggle Second Accordion</ion-button>
</template>

<script lang="ts" setup>
  import { IonAccordion, IonAccordionGroup, IonButton, IonItem, IonLabel } from '@ionic/vue';
  import { ref } from 'vue';

  const accordionGroup = ref(null);
  const toggleAccordion = () => {
    if (!accordionGroup.value) {
      return;
    }
    const nativeEl = accordionGroup.value.$el;

    if (nativeEl.value === 'second') {
      nativeEl.value = undefined;
    } else {
      nativeEl.value = 'second';
    }
  };
</script>