Vue: event.target adalah nol di Chrome pada img

Dibuat pada 9 Nov 2017  ·  4Komentar  ·  Sumber: vuejs/vue

Versi: kapan

2.5.3

Tautan reproduksi

https://jsbin.com/jafufah/1/edit?html ,js,console,output

Langkah-langkah untuk mereproduksi

Hanya di Chrome (61.0.3163) dan terkadang Safari (11.0.1).

  1. Buka tautan ke jsbin
  2. Klik Jalankan dengan JS
  3. Lihat bahwa konsol pertama-tama mencetak referensi event.target dan kemudian null untuk properti yang sama.

Apa yang diharapkan?

Di Firefox, Edge dan IE11 event.target tidak pernah null .

Apa yang sebenarnya terjadi?

event.target adalah null jika acara disimpan dalam variabel hingga centang berikutnya .


Saya tidak yakin apakah ini bug di Vue.js atau di Chrome, tetapi saya pikir lebih banyak perhatian tentang masalah ini akan membantu memperjelas.

Saya pertama kali melihat ini di dalam aplikasi nuxt.js tetapi mudah untuk mereproduksi hanya dalam vue.js, jadi saya kira itu baik di vue core atau di Chrome (blink/webkit).

Saya telah melakukan hal yang sama dengan penangan beban <object> dan ini tidak pernah terjadi - ini khusus untuk elemen <img> atau ukuran file yang akan dimuat.

Semua 4 komentar

itu bukan bug: Anda tidak memiliki jaminan bahwa acara tersebut valid dalam panggilan balik asinkron setelah digunakan. Jadi pada dasarnya Anda harus menyimpan apa pun yang Anda butuhkan, dalam kasus Anda, target , dan menggunakannya sebagai ganti variabel acara secara langsung

@posva Apakah Anda memiliki dokumentasi untuk pernyataan itu? Saya tidak berpikir Anda salah, saya hanya belum pernah melihat atau mendengar itu sebelumnya.

Saya tidak dapat menemukannya
Tapi, Anda bisa melihatnya di sini, tanpa Vue: https://jsbin.com/danuxohoga/1/edit?html ,js,console,output

Saya sedang mencari di suatu tempat yang memiliki dokumentasi apa pun tentang rentang hidup peristiwa DOM tetapi tidak menemukan apa pun. jsbin Anda akan menjadi contoh mahkota bagi ribuan, untuk ditautkan dari SO ;)

Serius, terakhir kali saya mengalami masalah ini adalah dalam VM hibrida yang disebut Titanium, di mana semua elemen dipetakan ke bagian penghitung Java atau Object-C dan ini akan hilang jika VM menganggapnya tidak digunakan. Saya tidak pernah berpikir saya akan melihatnya di browser. Tapi hari ini adalah harinya! :tada:

Apakah halaman ini membantu?
0 / 5 - 0 peringkat