Eu vinculo dois manipuladores de eventos neste link:
<a href='#' id='elm'>Show Alert</a>
JavaScript:
$(function()
{
$('#elm').click(_f);
$('#elm').mouseover(_m);
});
function _f(){alert('clicked');}
function _m(){alert('mouse over');}
Existe alguma maneira de obter uma lista de todos os eventos vinculados a um elemento, neste caso no elemento with id="elm"
?
javascript
jquery
javascript-events
Praveen Prasad
fonte
fonte
$._data(element[0], ‘events’);
$._data()
é usado pelo JQuery interno.$.data()
é o método público para o usuário. E$.data(element, 'events')
funciona bem.Caso Geral:
Sources
guiaEvent Listener Breakpoints
e expanda a árvoreDa mesma forma, você pode:
Inspect element
"event listeners
'.fonte
Estou adicionando isso para a posteridade; Existe uma maneira mais fácil que não envolve escrever mais JS. Usando o incrível addon firebug para o firefox ,
fonte
Agora você pode simplesmente obter uma lista de ouvintes de eventos vinculados a um objeto usando a função javascript getEventListeners ().
Por exemplo, digite o seguinte no console de ferramentas de desenvolvimento:
fonte
O plug- in do plugin jQuery Audit deve permitir que você faça isso por meio das Ferramentas de desenvolvimento normais do Chrome. Não é perfeito, mas deve permitir que você veja o manipulador real vinculado ao elemento / evento e não apenas o manipulador genérico do jQuery.
fonte
Embora isso não seja exatamente específico dos seletores / objetos do jQuery, no FireFox Quantum 58.x, você pode encontrar manipuladores de eventos em um elemento usando as ferramentas de desenvolvimento:
fonte
Eu usei algo assim se ($ ._ data ($ ("a.wine-item-link") [0]). Events == null) {... faça algo, ligue os manipuladores de eventos novamente} para verificar se meu elemento estiver vinculado a qualquer evento. Ainda será indefinido (nulo) se você desanexou todos os manipuladores de eventos desse elemento. Essa é a razão pela qual estou avaliando isso em uma expressão if.
fonte
Observe que os eventos podem ser anexados ao próprio documento, e não ao elemento em questão. Nesse caso, você desejará usar:
E encontre o evento com o seletor correto :
E então veja o manipulador > [[FunctionLocation]]
fonte
Quando passo uma consulta DOM complexa para dados $ ._ como este:
$._data($('#outerWrap .innerWrap ul li:last a'), 'events')
lança indefinidamente no console do navegador.Então eu tive que usar os dados $ ._ na div pai:
$._data($('#outerWrap')[0], 'events')
para ver os eventos das tags a. Aqui está um JSFiddle para o mesmo: http://jsfiddle.net/giri_jeedigunta/MLcpT/4/fonte
$('#outerWrap')
. Os eventos são realmente vinculados a esse elemento, e não às âncoras individuais.