#18086

element.addEventListener | MDN

Tiens, je ne connaissais pas l’option « {once: true} » à mettre sur les eventListeners.

C’est pratique : ça permet d’ajouter un eventListener à usage unique : dès que l’événement est déclenché, il s’exécute puis de désactive et disparaît.

Je l’utilise pour les menus clicables : je déroule un menu au clic. Mais je veux qu’un clic quelque part ailleurs sur la page (en dehors du menu) referme ce menu.

Dans le clic sur le menu, j’ajoute un window.eventListener(click, {}, {once: true}), et je teste si le clic a lieu sur le menu. Si c’est en dehors du menu, je ferme le menu.

Ça évite d’ajouter un événement sur le document qui écoute en permanence pour un click (alors qu’il n’y en a besoin que si un menu est ouvert, en fait).

https://developer.mozilla.org/fr/docs/Web/API/EventTarget/addEventListener