Je ne comprends pas la différence, ils semblent tous les deux identiques mais je suppose qu'ils ne le sont pas.
Tout exemple d'utilisation de l'un ou de l'autre serait apprécié.
actionscript-3
events
event-handling
Artemix
la source
la source
Réponses:
Ben a complètement raison dans sa réponse - alors gardez à l'esprit ce qu'il dit. Ce que je suis sur le point de vous dire n'est pas une explication complète, mais c'est un moyen très facile de se rappeler comment
e.target
,e.currentTarget
travailler en relation avec les événements de la souris et la liste d'affichage:e.target
= La chose sous la souris (comme dit ben ... la chose qui déclenche l'événement).e.currentTarget
= La chose avant le point ... (voir ci-dessous)Donc, si vous avez 10 boutons dans un clip avec un nom d'occurrence "btns" et que vous faites:
e.target
sera l'un des 10 boutons ete.currentTarget
sera toujours le clip "btns".Il convient de noter que si vous avez modifié le MouseEvent à un ROLL_OVER ou définissez la propriété
btns.mouseChildren
sur false,e.target
ete.currentTarget
sera toujours à la fois « btns ».la source
currentTarget
c'est toujours l'objet qui écoute l'événement;target
est la cible réelle qui a reçu l'événement. Par événement bouillonnant, la cible reçoit l'événement et il bouillonne la liste d'affichage. (Ou l'inverse pour la capture d'événement)e.target
est ce qui déclenche le déclencheur d'événements ete.currentTarget
c'est ce à quoi vous avez assigné votre écouteur.la source
e.currentTarget
est toujours l'élément auquel l'événement est réellement lié.e.target
est l'élément dont provient l'événement, ile.target
peut donc être un enfante.currentTarget
oue.target
être ===e.currentTarget
, selon la structure de votre balisage.la source
J'aime les réponses visuelles.
Lorsque vous cliquez sur
#btn
, deux gestionnaires d'événements sont appelés et ils affichent ce que vous voyez dans l'image.Démo ici: https://jsfiddle.net/ujhe1key/
la source
Il convient de noter que event.target peut être utile, par exemple, pour utiliser un seul écouteur pour déclencher différentes actions. Disons que vous avez le sprite "menu" typique avec 10 boutons à l'intérieur, donc au lieu de faire:
Vous pouvez simplement faire:
Et déclenchez une action différente dans doAction (événement) en fonction de event.target (en utilisant sa propriété name, etc ...)
la source
faire un exemple:
lorsque vous cliquez sur «btn», «vrai» et «vrai» apparaîtront!
la source
e.currentTarget renvoie toujours le composant sur lequel l'écouteur d'événements est ajouté.
D'un autre côté, e.target peut être le composant lui-même ou tout enfant direct ou petit-enfant ou arrière-petit-enfant et ainsi de suite qui a reçu l'événement. En d'autres termes, e.target renvoie le composant qui se trouve en haut de la hiérarchie de la liste d'affichage et doit être dans la hiérarchie enfant ou le composant lui-même.
Une utilisation peut être lorsque vous avez plusieurs images dans Canvas et que vous souhaitez faire glisser des images à l'intérieur du composant, mais Canvas. Vous pouvez ajouter un écouteur sur Canvas et dans cet écouteur, vous pouvez écrire le code suivant pour vous assurer que Canvas ne sera pas glissé.
la source
la source
Si vous cliquez sur l'élément enfant du bouton, il est préférable d'utiliser currentTarget pour détecter les attributs des boutons, dans CH, il est parfois difficile d'utiliser e.target.
la source
e.currentTarget est l'élément (parent) où l'événement est enregistré, e.target est le nœud (enfants) vers lequel l'événement pointe.
la source