Maison >interface Web >js tutoriel >Comment « ceci » se comporte-t-il dans les fonctions fléchées utilisées comme gestionnaires d'événements en JavaScript ?
Dans ES6, il existe un nouveau concept de fonctions fléchées qui offrent un aperçu concis et plus propre façon de définir les fonctions. Cependant, lorsque vous utilisez des fonctions fléchées comme rappels dans les gestionnaires d'événements, comprendre leur comportement devient crucial.
Dans le code fourni, un événement. La propriété currentTarget n'est pas utilisée et la fonction flèche renvoie un élément indéfini lorsque vous cliquez sur des éléments.
Pour résoudre ce problème problème, au lieu d'y accéder, event.currentTarget doit être utilisé pour obtenir l'élément auquel le gestionnaire est lié. event.currentTarget fait toujours référence à l'élément DOM dont les EventListeners sont actuellement en cours de traitement. Voici comment le code peut être modifié :
<code class="javascript">dom.videoLinks.click((e) => { e.preventDefault(); console.log(e.currentTarget); var self = e.currentTarget, url = self.attr(configuration.attribute); eventHandlers.showVideo(url); // Deactivate any active video thumbs dom.videoLinks.filter('.video-selected').removeClass('video-selected'); // Activate selected video thumb self.addClass('video-selected'); });</code>
Une autre différence importante à noter est le comportement de event.currentTarget et event. .target dans le contexte de la diffusion et de la capture d'événements.
< ;h3>Exemple
L'extrait fourni montre la différence entre ceci, event.currentTarget et event.target. En cliquant sur différents éléments, le résultat montre comment la valeur de chaque propriété change en fonction de l'élément déclenché et du contexte de l'écouteur d'événement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!