Mon script ajoute des div au DOM avec un événement clickable dessus, comme ça :
// On rempli le DIV PARENT
if(tab[0].length){
for (var element of tab) {
newDiv = document.createElement('div');
newDiv.innerHTML = element;
// On ajoute le child
res.appendChild(newDiv);
// On ajoute l'évènement
res.lastChild.addEventListener('click', clickChoice);
}
}
Ensuite, souvent, je dois les retirer, je fais comme ça :
// On supprime tous les CHILD
if(res.hasChildNodes()){
var childs = res.querySelectorAll('div');
for (var child of childs){
child.removeEventListener('click', clickChoice);
res.removeChild(child);
}
}
Mes questions :
Est-il nécessaire de faire removeChild, alors qu'il me suffirai de faire res.innerHTML='';
Est-il nécessaire de faire un remove de l'event ? est-ce overkill ?
Bonjour si tu vide la structure HTML avec res.innerHTML = "";
cela détruit aussi les événements qui été attaché dans la structure,
dans ton cas tu n'en n'aurais visiblement pas besoin ( du remove event ), mais dans d'autre contexte ne pas supprimé un événement avant d'en rattaché un pourrait les faire "s'empilé" les un sur les autres ( plusieurs événement identique sur le même élément ).
suggestion de présentation.
Faut-il "remove" the events ?
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
suggestion de présentation.