2.5.3
https://jsbin.com/jafufah/1/edit?html ,js,console,output
Uniquement dans Chrome (61.0.3163) et parfois Safari (11.0.1).
event.target
, puis null pour la même propriété.Dans Firefox, Edge et IE11, le event.target
n'est jamais null
.
event.target
est null
si l'événement est stocké dans la variable jusqu'au prochain tick .
Je ne sais pas s'il s'agit d'un bogue dans Vue.js ou dans Chrome, mais j'ai pensé que plus d'yeux sur la question aideraient à clarifier.
J'ai vu cela pour la première fois dans une application nuxt.js, mais c'est facile à reproduire dans vue.js, donc je suppose que c'est soit dans vue core, soit dans Chrome (blink/webkit).
J'ai fait la même chose avec un gestionnaire de charge <object>
et cela ne s'est jamais produit - c'est spécifique à l'élément <img>
ou à la taille du fichier à charger.
ce n'est pas un bug : vous n'avez aucune garantie que l'événement soit valide dans un rappel asynchrone après son utilisation. Donc, fondamentalement, vous devez enregistrer tout ce dont vous avez besoin, dans votre cas, target
, et l'utiliser directement à la place de la variable d'événement
@posva Avez-vous de la documentation pour cette déclaration ? Je ne pense pas que vous ayez tort, je n'ai jamais vu ou entendu ça auparavant.
je ne l'ai pas trouvé
Mais, vous pouvez le voir ici, sans Vue : https://jsbin.com/danuxohoga/1/edit?html ,js,console,output
Je cherchais un endroit contenant une documentation sur la durée de vie des événements DOM, mais je n'ai rien trouvé. Votre jsbin sera l'exemple de la couronne pour des milliers, à lier à partir de SO ;)
Sérieusement, la dernière fois que j'ai eu ce problème, c'était dans une machine virtuelle hybride appelée Titanium, où tous les éléments étaient mappés sur des contreparties Java ou Object-C et ceux-ci disparaîtraient si la machine virtuelle les jugeait inutilisés. Je n'aurais jamais pensé le voir dans un navigateur. Mais aujourd'hui était le jour ! :tada: 💩