N'ouvrir que de l'accordéon onglet à un moment

J'ai un accordéon qui fonctionne vraiment bien, il semble bon sur le site et fonctionne comme il se doit. Cependant, je vais essayer d'ajouter un peu de JavaScript de la fonctionnalité, de la rendre plus d'un aspect plus professionnel.

Actuellement, l'accordéon permet de disposer de plusieurs panneaux ouverts en même temps c'est à dire si j'ouvre un onglet, puis ouvrez un autre onglet, les deux onglets ouverts en même temps. Et la seule façon de fermer ces panneaux, est de re-cliquez sur l'en-tête.

Ce que je voudrais, c'est un peu de code JavaScript qui empêche plusieurs onglets d'être ouverts à la fois, donc si je clique sur un nouveau panneau, il faut fermer l'existant, ouvrez le panneau de première. Voici mon code HTML pour l'accordéon:

<div class="accordion"><b>Heading 1</b></div>
<div class="panel">
    <p class="text-light">Text 1</p>
</div>
<div class="accordion"><b>Heading 2</b></div>
<div class="panel">
    <p class="text-light">Text 2</p>
</div>

Voici mon code JavaScript dans un autre fichier JavaScript qui permet actuellement de plusieurs onglets ouverts à la fois

var acc = document.getElementsByClassName("accordion");
var i;

for (i = 0; i < acc.length; i++) {
    acc[i].onclick = function() {
        this.classList.toggle("active");
        this.nextElementSibling.classList.toggle("show");
    }
}

Vous ne savez pas si vous avez besoin de tous les CSS, mais voici le CSS pour afficher le panneau de

div.panel.show {
    display: block !important;
}

J'espère que quelqu'un pourra vous aider! Merci à l'avance!

double possible de comment faire pour que twitter bootstrap accordéon garder un groupe ouvert
Il suffit d'aller dans tous, les mettre à inactive et hide. Ensuite, vous activate et display sélectionné.
d'où vient l'OP dire qu'il est à l'aide de Bootstrap?

OriginalL'auteur Usman Zafar | 2016-06-10