Пробовал искать в Интернете, но не выглядит так, как будто я правильно сформулировал поисковый запрос.
Так просто, как это звучит, как я могу либо с jquery, либо просто с javascript перечислить все обработчики или прослушиватели событий, которые привязаны к элементу (элементам)/документу/окну или присутствуют в dom.
Просто интересно.
Спасибо заранее.
Ответ 1
В jQuery до 1.8 попробуйте использовать $("#element").data("events")
EDIT:
Существует также расширение jQuery: listHandlers
Ответ 2
При отладке, если вы хотите просто посмотреть, есть ли событие, я рекомендую использовать Visual Event или раздел "Элементы" в Chrome Developer Инструменты: выберите элемент и найдите "Слушатели событий" в правом нижнем углу.
В вашем коде, если вы используете jQuery до версии 1.8, вы можете использовать:
$(selector).data("events")
чтобы получить события. Начиная с версии 1.8, это прекращено (см. этот билет ошибок). Вы можете использовать:
$._data(element, "events")
но это не рекомендуется, так как это внутренняя структура jQuery и может быть изменена в будущих выпусках.
В этом вопросе есть некоторые ответы, которые могут быть полезны, но ни один из них не является особенно элегантным так же, как $(selector).data("events")
.
Ответ 3
Без jQuery:
если слушатели были добавлены с помощью метода elem.addEventListener(), список этих слушателей нелегко. Вы можете переопределить метод EventTarget.addEventListener(), обернув его своим собственным. Тогда у вас будет информация, какие слушатели были зарегистрированы.
var f = EventTarget.prototype.addEventListener; // store original
EventTarget.prototype.addEventListener = function(type, fn, capture) {
this.f = f;
this.f(type, fn, capture); // call original method
alert('Added Event Listener: on' + type);
}
Рабочий пример можно найти в http://jsfiddle.net/tomas1000r/RDW7F/
Ответ 4
Я только что открыл визуальное событие 2:
http://www.sprymedia.co.uk/article/Visual+Event+2
перейдите в раздел "сделать это" и перетащите текстовую ссылку на панель инструментов "Закладка"
перейдите на страницу с событиями и нажмите на закладку
протестирован в FF Mac