Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Получить список событии навешенных на элемент (https://javascript.ru/forum/events/47044-poluchit-spisok-sobytii-naveshennykh-na-ehlement.html)

pro_xaoc 06.05.2014 17:17

Получить список событии навешенных на элемент
 
Уважаемые, не могу понять, каким образом можно получить список событии навешенных на элемент через on()? Пробовал такие варианты через консоль:
1) element.data('events');
2) $.data(element, 'events');
3) $._data(element, 'events');
4) $._data(element[0], 'events');
Все они возвращали undefined.
Заранее спасибо!

Octane 06.05.2014 19:30

в jQuery.cache все хранится. Если это для отладки, то "Инструменты разработчика" в Chorme умеют показывать обработчики событий Elements>Event Listeners

pro_xaoc 07.05.2014 00:03

Octane,
не очень разборчиво чего-то там. Показывает, что на любом элементе висят обработчики ... Где истина?

Octane 07.05.2014 00:15

Список не фильтруется при выборе элемента, там сразу все обработчики отображаются. Если раскрыть событие, будут видны элементы.

pro_xaoc 07.05.2014 00:24

да, навешенные события как бы видно, handler стоит как
function(b){return typeof o!==U&&o.event.triggered!==b.type?o.event.dispatch.apply(a,arguments):void 0}

ну ладно, допустим нашли обработчик, теперь как его оттуда удалить?

pro_xaoc 07.05.2014 10:36

Решение есть, с помощью такой конструкции можно проверить, есть ли у элемента обработчик:
if(typeof($._data(element[0], "events").click) === 'object'){return false;}
НО! этот метод не работает на новые элементы принятые аяксом. Как можно обойти?

BETEPAH 07.05.2014 10:47

Цитата:

Сообщение от Octane
Список не фильтруется при выборе элемента

почему это? фильтруется. справа вверху есть кнопка фильтра. Там можно выбрать: показывать все слушатели или только для выбранного нода

pro_xaoc 07.05.2014 10:57

между прочим, Event Listener Хрома также не видит новые элементы ...

pro_xaoc 08.05.2014 14:58

стыдно признаться, но проблему решил банальным off() :D

nerv_ 08.05.2014 15:03

Цитата:

Сообщение от pro_xaoc
стыдно признаться, но проблему решил банальным off()

я хотел тебе написать, но влом было авторизовываться :)


Часовой пояс GMT +3, время: 22:40.