⊗jsPmDmLHU 362 of 505 menu

Détacher les gestionnaires d'événements dans une boucle en JavaScript

Supposons maintenant que nous n'ayons pas un seul élément, mais plusieurs. Par exemple, plusieurs paragraphes :

<p>text1</p> <p>text2</p> <p>text3</p>

Attachons la fonction func en tant que gestionnaire de clic à chacun de ces paragraphes :

let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.addEventListener('click', func); } function func() { console.log(this.textContent); }

Modifions maintenant le code pour que chaque paragraphe ne réagisse qu'au premier clic sur lui. Pour cela, lors du clic sur un paragraphe, nous détacherons le gestionnaire qui lui est attaché. Cette détachement concernera spécifiquement ce paragraphe, sans affecter les autres.

Comme vous le savez déjà, l'élément dans lequel l'événement s'est produit peut être obtenu dans la fonction gestionnaire via this. Cela signifie qu'il faut effectuer le détachement du gestionnaire de this, comme ceci :

let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.addEventListener('click', func); } function func() { console.log(this.textContent); this.removeEventListener('click', func); // détache le gestionnaire }

Des paragraphes sont donnés. Lors d'un clic sur l'un des paragraphes, ajoutez un point d'exclamation à sa fin. Faites en sorte que cette ajout ne se produise qu'au premier clic.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser