6

正如问题所说,我需要绑定到特定元素的事件列表。

我的意思是在加载 dom 时绑定到该元素的单击、鼠标悬停等事件。

(愚蠢的)例子:

$("#element").click(function()
{
    //stuff
});
$("#element").mouseover(function()
{
    //stuff
});
$("#element").focus(function()
{
    //stuff
});

结果:

单击,鼠标悬停,聚焦

4

2 回答 2

13

每个事件都被添加到一个数组中。

可以使用 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);
于 2009-11-13T14:59:41.653 回答
2

您可以通过 访问它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.
    }
}
于 2009-11-13T15:01:26.800 回答