正如问题所说,我需要绑定到特定元素的事件列表。
我的意思是在加载 dom 时绑定到该元素的单击、鼠标悬停等事件。
(愚蠢的)例子:
$("#element").click(function()
{
//stuff
});
$("#element").mouseover(function()
{
//stuff
});
$("#element").focus(function()
{
//stuff
});
结果:
单击,鼠标悬停,聚焦
每个事件都被添加到一个数组中。
可以使用 jQuery 数据方法访问该数组:
$("#element").data('events')
要将一个对象的所有事件记录到 fireBug,只需键入:
console.log ( $("#element").data('events') )
您将获得所有绑定事件的列表。
更新:
对于jQuery 1.8及更高版本,您必须查看内部 jQuery 数据对象:
$("#element").each(function(){console.log($._data(this).events);});
// or
console.log($._data($("#element")[0]).events);
您可以通过 访问它element.data('events');
。例子:
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.
}
}