查看哪些事件链接到jQuery中的元素

时间:2014-01-16 13:38:52

标签: javascript jquery events

Google翻译:

很好的尝试几天,所以我猜没有人有这种好奇心,我需要知道在jQuery上触发事件时正在执行的代码。

当我添加一个事件时它在JavaScript中常见,它只保存在jQuery不在同一个地方的名称变量中。

示例:

 / / Adding code to an event 
window.onclick = function () {alert ('hi!')}; 

/ / To see the event code 
console.log (window.onclick); 

在jQuery中?

感谢!!!


原件:

Bomprocurohádiaspor issoento achocingninguémteveessa curiosidade,eu preciso saberquaiscódigosestãosendoexecutados quando algumeventoédisparadono jQuery。

没有JavaScript comum quando eu adiciono um evento ele fica salvonariariávelderespectivo nomesóquenojQuerynãoficano mesmo lugar。

Exemplo:

// adicionando código a um evento
window.onclick = function(){alert('hi!')};

// para ver o código do evento
console.log(window.onclick);

E没有jQuery?

Obrigado !!!

3 个答案:

答案 0 :(得分:1)

您可以通过下一种方式查看所有jquery事件处理程序:

jQuery._data(document.getElementById('id-of-the-element'))

jQuery._data(jQuery('#id-of-the-element')[0])

答案 1 :(得分:1)

从jQuery 1.7开始,整个事件系统从头开始重写。 但是您可以使用未正式记录的jQuery方法......

$._data($('selector')[0],'events');

我建议不要在您的生产代码中使用它。

答案 2 :(得分:0)

试试这个:

 // UPDATED -> NOW WORKS WITH jQuery 1.3.1
$.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 === '*' ? '.+' : e    vents.replace(',','|').replace(/^on/i,'')) + ')$' ,'i')).test(name)) {
           $.each(handler, function(i,handler){
               outputFunction(elem, '\n' + i + ': [' + name + '] : ' + handler );
           });
       }
    });
});
};

获取点击事件:

// List onclick handlers of window:
 $(window).listHandlers('onclick', console.info);