Hoe vind ik event listeners op een DOM node bij het debuggen of vanuit de JavaScript code?
Ik heb een pagina waar een aantal event listeners zijn gekoppeld aan input boxes en select boxes. Is er een manier om uit te vinden welke event listeners een bepaalde DOM node observeren en voor welke gebeurtenis?
Gebeurtenissen zijn gekoppeld met behulp van:
- Prototype's
Event.observe
; - DOM's
addEventListener
; - Als element attribuut
element.onclick
.
799
3
Als u alleen wilt zien wat er op een pagina gebeurt, kunt u de Visual Event bookmarklet proberen.
Update: Visual Event 2 beschikbaar;
Het hangt ervan af hoe de gebeurtenissen zijn gekoppeld. Ter illustratie veronderstel dat we de volgende click handler hebben:
We'gaan het aan ons element hechten met behulp van verschillende methoden, sommige die inspectie toestaan en sommige die dat niet doen'niet.
Methode A) enkele event handler
Methode B) meervoudige event handlers
Methode C): jQuery
1.3.x
1.4.x (slaat de handler op in een object)
(Zie
jQuery.fn.data
enjQuery.data
)Methode D): Prototype (rommelig)
1.5.x
1.6 tot 1.6.0.3, inclusief (werd erg moeilijk hier)
1.6.1 (beetje beter)
Als je Firebug hebt, kun je
console.dir(object of array)
gebruiken om een mooie boom af te drukken in de console log van elke JavaScript scalar, array, of object.Probeer maar eens:
of