2.5.3
https://jsbin.com/jafufah/1/edit?html ,js,Konsole,Ausgabe
Nur in Chrome (61.0.3163) und manchmal Safari (11.0.1).
event.target
und dann null für dieselbe Eigenschaft ausgibt.In Firefox, Edge und IE11 ist event.target
nie null
.
event.target
ist null
wenn das Ereignis bis zum nächsten Tick in einer Variablen gespeichert wird.
Ich bin mir nicht sicher, ob dies ein Fehler in Vue.js oder in Chrome ist, aber ich dachte, mehr Augen auf die Angelegenheit werden zur Klärung beitragen.
Ich habe dies zum ersten Mal in einer nuxt.js-Anwendung gesehen, aber es ist einfach in vue.js zu reproduzieren, also denke ich, dass es entweder in vue core oder in Chrome (blink/webkit) ist.
Ich habe das gleiche mit einem <object>
Load-Handler gemacht und das ist noch nie passiert - es ist spezifisch für das <img>
Element oder die Größe der zu ladenden Datei.
Es ist kein Fehler: Sie können nicht garantieren, dass das Ereignis in einem asynchronen Rückruf gültig ist, nachdem es verwendet wurde. Im Grunde müssen Sie also alles speichern, was Sie brauchen, in Ihrem Fall target
, und dies anstelle der Ereignisvariablen direkt verwenden
@posva Haben Sie eine Dokumentation für diese Aussage? Ich glaube nicht, dass du falsch liegst, ich habe das nur noch nie zuvor gesehen oder gehört.
Ich konnte es nicht finden
Aber Sie können es hier ohne Vue sehen: https://jsbin.com/danuxohoga/1/edit?html ,js,console,output
Ich habe nach einem Ort gesucht, der eine Dokumentation der Lebensdauer von DOM-Ereignissen enthält, aber nichts gefunden. Ihr jsbin wird für Tausende das Kronenbeispiel sein, auf das Sie von SO verlinken können ;)
Im Ernst, das letzte Mal hatte ich dieses Problem in einer Hybrid-VM namens Titanium, bei der alle Elemente Java- oder Object-C-Gegenteilen zugeordnet waren und diese verschwinden würden, wenn die VM sie als ungenutzt ansieht. Ich hätte nie gedacht, dass ich es in einem Browser sehen würde. Aber heute war es soweit! :tada: 💩