Saya mengikat dua penangan acara di tautan ini:
<a href='#' id='elm'>Show Alert</a>
JavaScript:
$(function()
{
$('#elm').click(_f);
$('#elm').mouseover(_m);
});
function _f(){alert('clicked');}
function _m(){alert('mouse over');}
Apakah ada cara untuk mendapatkan daftar semua peristiwa yang terikat pada elemen, dalam hal ini elemen id="elm"
?
javascript
jquery
javascript-events
Praveen Prasad
sumber
sumber
$._data(element[0], ‘events’);
$._data()
digunakan oleh JQuery internal.$.data()
adalah metode publik untuk pengguna. Dan$.data(element, 'events')
berfungsi dengan baik.Kasus umum:
Sources
tabEvent Listener Breakpoints
, dan rentangkan pohonDemikian pula, Anda dapat:
Inspect element
"event listeners
'.sumber
Saya menambahkan ini untuk anak cucu; Ada cara yang lebih mudah yang tidak melibatkan menulis lebih banyak JS. Menggunakan addon pembakar yang luar biasa untuk firefox ,
sumber
Anda sekarang dapat dengan mudah mendapatkan daftar pendengar acara yang terikat pada suatu objek dengan menggunakan fungsi javascript getEventListeners ().
Misalnya ketikkan yang berikut ini di konsol alat dev:
sumber
The jQuery Audit Plugin Plugin harus membiarkan Anda melakukan hal ini melalui normal Chrome Dev Tools. Ini tidak sempurna, tetapi harus membiarkan Anda melihat handler sebenarnya terikat pada elemen / acara dan bukan hanya penangan jQuery generik.
sumber
Meskipun ini tidak spesifik untuk penyeleksi / objek jQuery, di FireFox Quantum 58.x, Anda bisa menemukan event handler pada elemen menggunakan alat Dev:
sumber
Saya menggunakan sesuatu seperti ini jika ($ ._ data ($ ("a.wine-item-link") [0]). Events == null) {... melakukan sesuatu, cukup banyak mengikat pengendali acara mereka lagi} untuk memeriksa jika elemen saya terikat pada acara apa pun. Itu akan tetap mengatakan tidak terdefinisi (nol) jika Anda telah melepaskan semua penangan acara dari elemen itu. Itulah alasan mengapa saya mengevaluasi ini dalam ekspresi if.
sumber
Perhatikan bahwa acara dapat dilampirkan pada dokumen itu sendiri daripada elemen yang dimaksud. Dalam hal ini, Anda ingin menggunakan:
Dan temukan acara dengan pemilih yang benar :
Dan kemudian lihat pawang > [[FunctionLocation]]
sumber
Ketika saya mengirimkan sedikit permintaan DOM yang rumit ke data $ ._ seperti ini:
$._data($('#outerWrap .innerWrap ul li:last a'), 'events')
itu melempar tidak terdefinisi di konsol browser.Jadi saya harus menggunakan data $ ._ pada div induk:
$._data($('#outerWrap')[0], 'events')
untuk melihat acara untuk tag a. Berikut ini adalah JSFiddle untuk hal yang sama: http://jsfiddle.net/giri_jeedigunta/MLcpT/4/sumber
$('#outerWrap')
. Peristiwa sebenarnya terikat pada elemen itu daripada jangkar individu.