Nope, moi, je place un eventListener sur un objet HTML, et lorsque l'event est appelé, j'ajoute ou je supprime des classes CSS sur d'autres éléments HTML. Ensuite, le CSS se charge de faire les display none ou autres mises en formes adaptées. Cela me permet de ne pas avoir de CSS au milieu du JS (et donc, de pouvoir utiliser des plugins navigateur comme "CSS reloader" qui permettent de voir les changements appliqués au CSS sans recharger la page) et d'autre part, cela me permet de séparer le listener de chaque objet HTML (au lieu d'un énorme listener qui sera imbitable avec 50 if, j'ai 50 listener, chacun en charge d'un truc, chacun écoutant [par définition] les évènements d'un seul élément HTML [ici, l'évènement "contextmenu"]).
Jouer avec des "le noeud parent de gnagna", encore plus avec "le deuxième frère du noeud bidule", c'est prendre le risque de figer totalement ton HTML (si un noeud s'ajoute au milieu, patatras!). Là, dans mon exemple, c'est un querySelector qui se charge de trouver l'autre noeud auquel appliquer le styling. Ok, si cet autre noeud change de classe, patatras, mais là, c'est logique (tu changes le noeud ciblé, ça casse ce qui cible le noeud; précédemment, tu ajoutais des trucs ailleurs et cela pouvait casser le ciblage du noeud).
Après, si tu as 50 noeuds HTML sur lesquels poser le même listener, tu peux parfaitement stocker ton listener dans une variable (var listener = function (e) { ... }) puis appliquer ce même listener à tous tes objets (en JS moderne: [].forEach.call(document.querySelectorAll('.mesciblesaecouter'), node => node.addEventListener(listener)) sinon, pour faire plus compatible, tu peux passer par une boucle for [ou mettre ce for dans une fonction utilitaire, vu que c'est du path pour palier au fait que tous les navigateurs n'ont pas encore implémenté les dernières spec JS).
Après, tu peux faire 70 if qui s'enchainent, mais je te garantis que cela ne va vraiment pas être pratique...
(et heu, les jeux "ouais je veux pas du clic droit basique", c'est juste... lol... non... http://www.commitstrip.com/fr/2016/06/03...t-allowed/ Enfin, après, tu fais comme tu le sens, je te propose juste de bonnes habitudes qui te seront profitables à terme [encore plus si tu veux t'orienter vers une carrière informatique] )
Jouer avec des "le noeud parent de gnagna", encore plus avec "le deuxième frère du noeud bidule", c'est prendre le risque de figer totalement ton HTML (si un noeud s'ajoute au milieu, patatras!). Là, dans mon exemple, c'est un querySelector qui se charge de trouver l'autre noeud auquel appliquer le styling. Ok, si cet autre noeud change de classe, patatras, mais là, c'est logique (tu changes le noeud ciblé, ça casse ce qui cible le noeud; précédemment, tu ajoutais des trucs ailleurs et cela pouvait casser le ciblage du noeud).
Après, si tu as 50 noeuds HTML sur lesquels poser le même listener, tu peux parfaitement stocker ton listener dans une variable (var listener = function (e) { ... }) puis appliquer ce même listener à tous tes objets (en JS moderne: [].forEach.call(document.querySelectorAll('.mesciblesaecouter'), node => node.addEventListener(listener)) sinon, pour faire plus compatible, tu peux passer par une boucle for [ou mettre ce for dans une fonction utilitaire, vu que c'est du path pour palier au fait que tous les navigateurs n'ont pas encore implémenté les dernières spec JS).
Après, tu peux faire 70 if qui s'enchainent, mais je te garantis que cela ne va vraiment pas être pratique...
(et heu, les jeux "ouais je veux pas du clic droit basique", c'est juste... lol... non... http://www.commitstrip.com/fr/2016/06/03...t-allowed/ Enfin, après, tu fais comme tu le sens, je te propose juste de bonnes habitudes qui te seront profitables à terme [encore plus si tu veux t'orienter vers une carrière informatique] )