JQuery Event.Target Problem
-
26-09-2019 - |
Pergunta
Não sei se esqueci como fazê -lo ou se é um bug, mas não consigo encontrar a referência do chamador no evento "clique" usando o jQuery.
Estou fazendo o seguinte:
$(document).ready(function() {
$('#parent a.item').click(doSomething);
});
function doSomething(e) {
// Alerts for demostrational purposes only
alert(e.target);
alert(e.currentTarget);
alert(this);
alert($(this)[0]);
}
Todos os alertas mostram o atributo href do hiperlink (página url + '#').
Estou fazendo algo errado?
Notas:Usando o jQuery 1.4.2.
Solução
É porque você está alertando, então está vendo a representação da string (desde alert()
leva uma string) ... que para uma âncora é o href
. Você pode fazer isso, por exemplo:
alert(e.target); //or perhaps alert(this.target); - alerts the href
alert(e.target.innerHTML); //or perhaps alert(this.innerHTML); - alerts the html
Você pode experimentar/brincar com ele aqui, Observe que this
e e.target
Nem sempre são os mesmos, se o clique vier de um elemento filho, eles serão diferentes.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow