Страницы

Поиск по вопросам

среда, 9 января 2019 г.

JQuery поиск обработчика события объекта

Мне нужно найти, какие обработчики событий записаны на объекте.
Например:
$("#el").click(function() {...}); $("#el").mouseover(function() {...});
На $("#el") записаны события click и mouseover
Есть ли функция, чтобы узнать это, и можно ли выполнить итерацию по обработчикам событий?
Если это невозможно в объекте jQuery с помощью правильных методов, возможно ли это для обычного объекта DOM?
Переведено с: https://stackoverflow.com/questions/2518421/


Ответ

Начиная с jQuery 1.8, информация о событиях больше не доступна из «public API» для данных. Прочтите это сообщение в блоге jQuery. Теперь, для того чтобы узнать список событий записанных на объекте, нужно использовать это:
jQuery._data( elem, "events" );
elem должен быть элементом HTML, а не объектом jQuery или селектором.
Обратите внимание, что это внутренняя, «частная» структура, и ее не следует изменять. Используйте это только для целей отладки.
В старых версиях jQuery вам может потребоваться использовать старый метод:
jQuery( elem ).data( "events" );

Пример:
$('#el').click(function() { $(this).text('Нажали!'); }) $('#el').mouseover(function() { $(this).text('Поводили мышкой!'); }); // Получаем события var elem = $('#el').get(0); console.log( $._data(elem, "events") );

Текст

Комментариев нет:

Отправить комментарий