Saya mencoba menemukan jQuery yang setara dengan pemanggilan metode JavaScript ini:
document.addEventListener('click', select_element, true);
Saya sudah sampai sejauh:
$(document).click(select_element);
tapi itu tidak mencapai hasil yang sama, sebagai parameter terakhir dari metode JavaScript - boolean yang menunjukkan apakah event handler harus dieksekusi dalam fase menangkap atau menggelegak (sesuai pemahaman saya dari http://www.quirksmode.org /js/events_advanced.html ) - ditinggalkan.
Bagaimana cara menentukan parameter itu, atau mencapai fungsi yang sama, menggunakan jQuery?
javascript
jquery
events
event-handling
dom-events
Mengerjakan dgn kurang baik
sumber
sumber
Jawaban:
Tidak semua browser mendukung penangkapan acara (misalnya, versi Internet Explorer kurang dari 9 tidak), tetapi semua mendukung gelembung acara, itulah sebabnya ini adalah fase yang digunakan untuk mengikat penangan ke acara di semua abstraksi lintas-browser, termasuk jQuery.
Yang terdekat dengan apa yang Anda cari di jQuery adalah menggunakan
bind()
(digantikan olehon()
di jQuery 1.7+) atau metode jQuery khusus acara (dalam hal iniclick()
, yangbind()
tetap memanggil internal). Semua menggunakan fase gelembung dari peristiwa yang terjadi.sumber
Pada jQuery 1.7,
.on()
sekarang metode yang disukai untuk acara mengikat, daripada.bind()
:Dari http://api.jquery.com/bind/ :
Halaman dokumentasi terletak di http://api.jquery.com/on/
sumber
Hal terdekat adalah fungsi bind:
http://api.jquery.com/bind/
sumber
Satu hal yang perlu diperhatikan adalah bahwa metode acara jQuery tidak mengaktifkan / menjebak
load
padaembed
tag yang berisi SVG DOM yang dimuat sebagai dokumen terpisah dalamembed
tag. Satu-satunya cara yang saya temukan untuk menjebak suatuload
peristiwa adalah menggunakan JavaScript mentah.Ini tidak akan berfungsi (Saya sudah mencoba
on
/bind
/load
metode):Namun, ini berfungsi:
sumber
$img
?Anda sekarang harus menggunakan
.on()
fungsi untuk mengikat acara.sumber
sumber
Berikut ini adalah perlakuan yang sangat baik di Mozilla Development Network (MDN) dari masalah ini untuk JavaScript standar (jika Anda tidak ingin bergantung pada jQuery atau memahaminya dengan lebih baik secara umum):
https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener
Berikut ini adalah diskusi tentang aliran acara dari tautan dalam perawatan di atas:
http://www.w3.org/TR/DOM-Level-3-Events/#event-flow
Beberapa poin utama adalah:
sumber