Мне нужно найти, какие обработчики событий записаны на объекте.
Например:
$("#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") );
Комментариев нет:
Отправить комментарий