1
2
3
4
5
6
7
8
9
10
11
12
13
14
$.fn.listHandlers = function(events, outputFunction) {
   return this.each(function(i){
      var elem = this,
      dEvents = $(this).data('events');
      if (!dEvents) {return;}
      $.each(dEvents, function(name, handler){
         if((new RegExp('^(' + (events === '*' ? '.+' : events.replace(',','|').replace(/^on/i,'')) + ')$' ,'i')).test(name)) {
            $.each(handler, function(i,handler){
               outputFunction(elem, '\n' + i + ': [' + name + '] : ' + handler );
            });
         }
      });
   });
};

Для использования, необходимо указать прослушиваемый элемент, событие и функцию для вывода результата.

Если вы используете firebug, то в качестве функции вывода можно использовать console.log или console.info

1
2
3
4
5
6
7
8
9
10
// Прослушиваем событие onclick для всех ссылок:
$('a').listHandlers('onclick', console.info);
 
// Прослушиваем все события для всех элементов:
$('*').listHandlers('*', console.info);
 
// Используем свою функцию для вывода:
$('#whatever').listHandlers('click',function(element,data){
   $('body').prepend('<br />' + element.nodeName + ': <br /><pre>' + data + '<\/pre>');
});

источник: james.padolsey.com

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