⊗jsPmOEEE 419 of 505 menu

Élément d'événement dans l'objet Event en JavaScript

L'objet Event permet également d'obtenir l'élément dans lequel l'événement s'est produit. Cet élément est contenu dans la propriété target. Pourquoi est-ce nécessaire, si cet élément est contenu dans this ?

Le fait est que this contient toujours l'élément, auquel l'événement était attaché, tandis que la propriété target - l'élément sur lequel le clic a réellement eu lieu. Cet élément réel peut coïncider avec this, ou peut ne pas coïncider.

Regardons un exemple. Disons que nous avons une div, et à l'intérieur un paragraphe :

<div id="elem"> <p>text</p> </div>

Attachons un événement au div, mais cliquons sur le paragraphe. Évidemment, le clic sur le paragraphe représente simultanément un clic sur le div, car le paragraphe est contenu dans notre div.

Dans le cas décrit, la propriété target contiendra la balise finale, dans laquelle l'événement s'est produit - c'est-à-dire le paragraphe, et non le div. Assurons-nous en :

let elem = document.querySelector('#elem'); elem.addEventListener('click', function(event) { console.log(event.target); // affichera notre paragraphe console.log(this); // affichera notre div });

Disons que vous avez une liste ul avec des balises li :

ul { padding: 30px; border: 1px solid red; } li { list-style-type: none; margin-bottom: 20px; border: 1px dashed black; } <ul id="elem"> <li>text</li> <li>text</li> <li>text</li> <li>text</li> <li>text</li> </ul>

:

Attachez à la balise ul un gestionnaire de clic. Dans ce gestionnaire, vérifiez à l'aide de la propriété tagName, sur quelle balise le clic a eu lieu. Si le clic était sur la balise li - ajoutez à la fin du texte de cette balise un point d'exclamation. Et si le clic était sur la balise ul - affichez l'information à ce sujet dans la console.

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