Saya tidak mengerti perbedaannya, mereka berdua tampak sama tetapi saya kira mereka tidak sama.
Contoh kapan menggunakan satu atau yang lain akan dihargai.
actionscript-3
events
event-handling
Artemix
sumber
sumber
Jawaban:
Ben sepenuhnya benar dalam jawabannya - jadi ingatlah apa yang ia katakan. Apa yang akan saya sampaikan kepada Anda bukanlah penjelasan lengkap, tetapi ini adalah cara yang sangat mudah untuk mengingat caranya
e.target
,e.currentTarget
bekerja dalam kaitannya dengan peristiwa mouse dan daftar tampilan:e.target
= Benda di bawah mouse (seperti kata ben ... benda yang memicu peristiwa).e.currentTarget
= Hal sebelum titik ... (lihat di bawah)Jadi, jika Anda memiliki 10 tombol di dalam klip dengan nama instance "btns" dan Anda melakukannya:
e.target
akan menjadi salah satu dari 10 tombol dane.currentTarget
akan selalu menjadi klip "btns".Perlu dicatat bahwa jika Anda mengubah MouseEvent menjadi ROLL_OVER atau menyetel properti
btns.mouseChildren
menjadi false,e.target
dane.currentTarget
keduanya akan selalu "btns".sumber
currentTarget
selalu objek mendengarkan acara;target
adalah target aktual yang menerima acara tersebut. Per peristiwa menggelegak, target menerima acara dan itu menggelembungkan daftar tampilan. (Atau sebaliknya untuk menangkap acara)e.target
adalah apa yang memicu pengirim acara untuk memicu dane.currentTarget
apa yang Anda tetapkan pendengar Anda.sumber
e.currentTarget
selalu elemen acara sebenarnya terikat lakukan.e.target
adalah elemen asal acara, jadie.target
bisa jadi anake.currentTarget
, ataue.target
bisa ===e.currentTarget
, tergantung pada bagaimana markup Anda disusun.sumber
Saya suka jawaban visual.
Ketika Anda mengklik
#btn
, dua penangan acara dipanggil dan mereka menampilkan apa yang Anda lihat dalam gambar.Demo di sini: https://jsfiddle.net/ujhe1key/
sumber
Perlu dicatat bahwa event.target dapat bermanfaat, misalnya, karena menggunakan pendengar tunggal untuk memicu tindakan yang berbeda. Katakanlah Anda memiliki sprite "menu" khas dengan 10 tombol di dalamnya, jadi alih-alih melakukan:
Anda bisa melakukannya:
Dan memicu tindakan berbeda di dalam doAction (acara) tergantung pada event.target (menggunakan properti namanya, dll ...)
sumber
buat contoh:
ketika Anda mengklik 'btn', dan 'benar' dan 'benar' akan muncul!
sumber
e.currentTarget akan selalu mengembalikan komponen yang ditambahkan pendengar acara.
Di sisi lain, e.target dapat menjadi komponen itu sendiri atau anak langsung atau cucu atau cicit dan seterusnya yang menerima acara tersebut. Dengan kata lain, e.target mengembalikan komponen yang ada di atas dalam hierarki Daftar Tampilan dan harus dalam hierarki anak atau komponen itu sendiri.
Satu penggunaan bisa ketika Anda memiliki beberapa Gambar di Kanvas dan Anda ingin menyeret Gambar di dalam komponen tetapi Kanvas. Anda bisa menambahkan pendengar di Kanvas dan di pendengar itu Anda dapat menulis kode berikut untuk memastikan bahwa Kanvas tidak akan diseret.
sumber
sumber
Jika Anda mengeklik elemen turunan tombol, lebih baik menggunakan currentTarget untuk mendeteksi atribut tombol, di CH terkadang masalah menggunakan e.target.
sumber
e.currentTarget adalah elemen (orang tua) tempat acara terdaftar, e.target adalah simpul (anak-anak) tempat acara diarahkan.
sumber