我已经使用addEventListener
将一些事件附加到某些div上。但是我在哪里可以看到Firebug中的事件?
最佳答案
值得一提的是Firebug 1.12引入了getEventListeners(target)
。它的Firebug Wiki页面为here,并且有一个非常有用的博客文章here。
(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]}
如您所见,“longhand”方法(从答案中链接到的SO帖子)可以检索该事件,但是
getEventListeners
显示为未定义。此错误与getEventListeners
运行但报告对象没有侦听器时返回的值不同,因此我想说您可以不用担心使用getEventListeners
,因为如果尚不可用,它将很明显!