Firebug:如何查看对象的附加事件?

Flo*_*ler 7 javascript firebug

我已经将一些事件附加到一些div使用addEventListener.但是我在哪里可以看到Firebug中的事件?

Orb*_*ing 12

如果您使用的是jQuery,那么安装FireQuery,它会在每个元素的HTML DOM面板上显示所有绑定事件.非常有用的补充.


Sam*_*Sam 7

值得一提的是,引入了Firebug 1.12 getEventListeners(target).它Firebug的wiki页面是在这里,而且有一个非常有用的博客文章关于它在这里.

(Firebug 1.12仅在2013年8月发布,所以这个问题的答案在最初发布时是正确的.)

但是,有几点需要注意getEventListeners:

首先,如果你传递一个jQuery对象,它将无法工作; 传递给普通的DOM对象.(也许这很明显,但它让我感到惊讶!)

其次,我发现getEventListeners如果我在页面上的所有代码加载之前运行它并不总是有效.我不确定它什么时候起作用但不起作用,但我确实看到过这样的情况:

>>> getEventListeners(document.getElementById('elementid'))
ReferenceError: getEventListeners is not defined
>>> $._data(document.getElementById('elementid'), "events");
Object { click=[1]}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,"longhand"方法(来自链接到答案的SO帖子)可以检索事件,但getEventListeners显示为未定义.此错误与getEventListeners运行时获得的返回值不同,但报告对象没有侦听器,因此我会说您可以getEventListeners毫无顾虑地使用它,因为如果它还没有可用就会很明显!