Firebug: Как увидеть прикрепленные события объекта? - PullRequest
7 голосов
/ 18 ноября 2010

Я прикрепил некоторые события к некоторым элементам div, используя addEventListener. Но где я могу увидеть события в Firebug?

Ответы [ 3 ]

12 голосов
/ 18 ноября 2010

Если вы используете jQuery, то установите FireQuery , он показывает все связанные события на панели HTML DOM для каждого элемента.Очень полезное дополнение.

7 голосов
/ 06 февраля 2014

Вероятно, стоит упомянуть, что Firebug 1.12 представил getEventListeners(target). Вики-страница Firebug для этого здесь , и есть очень полезная запись в блоге об этом здесь .

(Firebug 1.12 был выпущен только в августе 2013 года, поэтому ответ на этот вопрос был правильным, когда он был первоначально опубликован.)

Однако есть несколько предостережений для 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 без страха, поскольку это будет очевидно, если он еще не доступен!

1 голос
/ 18 ноября 2010

Не думайте, что у Firebug есть хорошая функциональность для этого. Вы можете посмотреть здесь .

...