Можно ли получить список событий, связанных с элементом в jQuery? - PullRequest
6 голосов
/ 13 ноября 2009

Как сказал вопрос, мне нужен список событий, привязанных к конкретному элементу.

Я имею в виду такие события, как щелчок, наведение мыши и т. Д., Связанные с этим элементом при загрузке домена.

(Глупый) пример:

$("#element").click(function()
{
    //stuff
});
$("#element").mouseover(function()
{
    //stuff
});
$("#element").focus(function()
{
    //stuff
});

Результат:

нажмите, Mouseover, фокус

Ответы [ 2 ]

13 голосов
/ 13 ноября 2009

Каждое событие добавляется в массив.

Доступ к этому массиву можно получить с помощью метода данных jQuery:

$("#element").data('events')

Чтобы записать все события одного объекта в fireBug, просто наберите:

console.log ( $("#element").data('events') )

И вы получите список всех связанных событий.


Обновление:

Для jQuery 1.8 и выше вы должны заглянуть во внутренний объект данных jQuery:

$("#element").each(function(){console.log($._data(this).events);});
// or
console.log($._data($("#element")[0]).events);
2 голосов
/ 13 ноября 2009

Вы можете получить к нему доступ element.data('events');. Пример:

var events = element.data('events');
for (var type in events) {
    // `type` is "click", "mouseover", "change", etc.
    for (var handler in events[type]) {
        // `handler` is the associated function.
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...