Как я могу получить информацию о событиях, которые привязаны к элементу с помощью live()?

#javascript #jquery

#javascript #jquery

Вопрос:

У меня есть один <a> тег и привязать к нему два события. Как я могу получить информацию о других событиях, связанных с ним?

Следующий код объясняет, что я имею в виду:

 <a href="#" id="sample" class="sample-cls">Click me</a>

$(function(){
    $('#sample').live("click", function(){
        sampleFunction();
    })
    $('.sample-cls').live("click", function(){
        // How to get information that to this link 
        // is attached another event, that run sampleFunction() ?
    })
})
  

К сожалению, $('#sample').data('events') не включает события, связанные с помощью live() .

Ответ №1:

 // 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.toString() );
    });
});
  

Смотрите это

Конечно, это может быть дополнительно улучшено в соответствии с вашими потребностями.

Комментарии:

1. Я не думаю, что это сработает, когда события связаны с live as в вопросе.

2. Вот что я создаю новый вопрос по этому поводу 😉 Этот код возвращает мне «неопределенный»