问题
As the question said, i need the list of events bound to a specific element.
I mean events like click, mouseover etc bound to that element at the loading of the dom.
(Stupid) example:
$("#element").click(function()
{
//stuff
});
$("#element").mouseover(function()
{
//stuff
});
$("#element").focus(function()
{
//stuff
});
Result:
click, mouseover, focus
回答1:
Every event is added to an array.
This array can be accessed using the jQuery data method:
$("#element").data('events')
To log all events of one object to fireBug just type:
console.log ( $("#element").data('events') )
And you will get a list of all bound events.
Update:
For jQuery 1.8 and higher you have to look into the internal jQuery data object:
$("#element").each(function(){console.log($._data(this).events);});
// or
console.log($._data($("#element")[0]).events);
回答2:
You can access it by element.data('events');
. Example:
var events = element.data('events');
for (var type in events) {
// `type` is "click", "mouseover", "change", etc.
for (var handler in events[type]) {
// `handler` is the associated function.
}
}
来源:https://stackoverflow.com/questions/1729732/is-it-possible-to-obtain-a-list-of-events-bound-to-an-element-in-jquery