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.

Foi útil?

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
scroll top