#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") );Текст
Комментариев нет:
Отправить комментарий