2010-11-18 21 views

回答

7

可能值得一提的是,Firebug 1.12引入了getEventListeners(target)。它的Firebug wiki頁面是here,並且有一個非常有用的博客文章here

(螢火蟲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]} 

正如你可以看到,從SO後鏈接到「手寫」的方法(在答案中)可以檢索事件,但getEventListeners顯示爲未定義。如果getEventListeners運行但是報告對象沒有偵聽器,則此錯誤與您得到的返回值不同,所以我會說您可以無恐懼地使用getEventListeners,因爲如果它尚不可用,它將很明顯!

1

不要以爲Firebug具有良好的功能。你可能想看看here

12

如果您使用的是jQuery,然後安裝FireQuery,它會在每個元素的HTML DOM面板上顯示所有綁定事件。非常有用的補充。

+0

此外,它顯示您存儲的任何數據,並在控制檯上提供一個「jqueryify」按鈕,用於將當前版本的jQuery注入到您正在查看的頁面中,這非常有用。 – Orbling 2010-11-18 15:43:21

+1

謝謝你。對於任何使用jQuery和Firebug的Web開發人員來說,FireQuery都是一款出色的工具,非常值得一試。 – crmpicco 2013-10-11 09:45:28

+1

它看起來像停止了某些時候的工作...我使用jQuery的最新版本,我看不到任何與該擴展名。 – 2014-08-03 06:31:32