Доступ к функциям, связанным с обработчиками событий с jQuery

С jQuery можно связать функции с событием, включил использование Объекта DOM .bind() или одна из функций помощника обработчика событий.

jQuery должен сохранить это внутренне так или иначе, и интересно, ли это возможный, учитывая Объект DOM, для обнаружения, какие события были связаны с объектом и получают доступ к тем функциям и т.д. Желаемый результат возврата мог выглядеть примерно так:

{
  click: [function1, function2],
  change: [function3],
  blur: [function4, function5, function6]
}
50
задан googletorp 5 March 2010 в 05:56
поделиться

1 ответ

Изменить : метод ниже работает только в jQuery <1.7

Вы можете найти много интересных советов и приемов в этой статье: То, что вы можете не знать о jQuery .

Похоже, что jQuery использует данные для хранения обработчиков событий:

Вы можете получить доступ ко всем обработчикам событий , привязанным к элементу (или любому объекту) через jQuery хранилище событий:

// List bound events:
console.dir( jQuery('#elem').data('events') );

// Log ALL handlers for ALL events:
jQuery.each($('#elem').data('events'), function(i, event){
    jQuery.each(event, function(i, handler){
        console.log( handler['handler'].toString() );
    });
});

// You can see the actual functions which will occur
// on certain events; great for debugging!
35
ответ дан 7 November 2019 в 10:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: