是否有可能获得绑定到jQuery中的元素的事件列表?

时间:2009-11-13 14:58:35

标签: jquery events binding elements

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

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

(愚蠢)示例:

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

结果:

点击, 鼠标移到, 焦点

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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.
    }
}