Страницы

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

четверг, 2 января 2020 г.

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

#jquery #dom #события


Мне нужно найти, какие обработчики событий записаны на объекте.

Например:

$("#el").click(function() {...});
$("#el").mouseover(function() {...});


На $("#el") записаны события click и mouseover.

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

Если это невозможно в объекте jQuery с помощью правильных методов, возможно ли это
для обычного объекта DOM? 

Переведено с: https://stackoverflow.com/questions/2518421/
    


Ответы

Ответ 1



Начиная с 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") );
Текст


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

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