Bonjour,
J'essaie de créer un système d'onglet dynamique. En cliquant sur un "onglet", un "contenant" se dévoile tandis que les autres sont cachés (par un 'display: none' annulé par la class 'tab-visible'). Les onglets et contenants sont des div et ont tous un attribut data-tab-xxxxx="x". Mon code doit récupérer le data-tab-etiquette="y" (correspond à un onglet cliquable) qui est cliqué et ajouter la class 'tab-visible' à la balise portant un data-tab-content="y" (correspond au contenant à afficher).
L'écouteur d'évènement récupère le data-tab-etiquette="3" (par exemple) et le transmet à ma fonction 'afficherTabContent' qui doit faire le lien avec data-tab-content="3" (pour continuer l'exemple) et lui ajouter la class 'tab-visible'.
Seulement voilà : j'ai une erreur de typage :
TypeError: etiquetteSelect.classList is undefined main.js:31:5
afficherTabContent
http://127.0.0.1:5500/script/main.js:31:5
<anonymous>
http://127.0.0.1:5500/script/main.js:41:9
Auriez-vous une solution ?
Merci d'avance pour vos réponses
J'essaie de créer un système d'onglet dynamique. En cliquant sur un "onglet", un "contenant" se dévoile tandis que les autres sont cachés (par un 'display: none' annulé par la class 'tab-visible'). Les onglets et contenants sont des div et ont tous un attribut data-tab-xxxxx="x". Mon code doit récupérer le data-tab-etiquette="y" (correspond à un onglet cliquable) qui est cliqué et ajouter la class 'tab-visible' à la balise portant un data-tab-content="y" (correspond au contenant à afficher).
L'écouteur d'évènement récupère le data-tab-etiquette="3" (par exemple) et le transmet à ma fonction 'afficherTabContent' qui doit faire le lien avec data-tab-content="3" (pour continuer l'exemple) et lui ajouter la class 'tab-visible'.
Seulement voilà : j'ai une erreur de typage :
TypeError: etiquetteSelect.classList is undefined main.js:31:5
afficherTabContent
http://127.0.0.1:5500/script/main.js:31:5
<anonymous>
http://127.0.0.1:5500/script/main.js:41:9
Auriez-vous une solution ?
Merci d'avance pour vos réponses
// -- Repérages
var dataTabEtiquette = document.querySelectorAll('[data-tab-etiquette]');
var dataTabContent = document.querySelectorAll('[data-tab-content]');
// -- Fonctions
function afficherTabContent(etiquetteClick) {
var numEtiquette = etiquetteClick.dataset.tabEtiquette;
var etiquetteSelect = document.querySelectorAll("[data-tab-content=\""+numEtiquette+"\"]");
console.log(etiquetteSelect);
etiquetteSelect.classList.add('tab-visible');
}
// -- Traitement
for (var p = 0; p < dataTabEtiquette.length; p++) {
var etiquette = dataTabEtiquette[p];
etiquette.addEventListener('click', function () {
var etiquetteClick = this;
afficherTabContent(etiquetteClick);
});
}