Eu tenho este código:
$(document).keyup( function(e) {
console.log($(this).attr('id'));
});
Ao digitar uma tag de entrada HTML com um id, a saída em console.log é:
undefined
Como então usar $(this) dentro da função keyup?
Eu tenho este código:
$(document).keyup( function(e) {
console.log($(this).attr('id'));
});
Ao digitar uma tag de entrada HTML com um id, a saída em console.log é:
undefined
Como então usar $(this) dentro da função keyup?
O objeto de evento tem uma
target
propriedade que pode ser usada para isso:Você pode até mesmo dar um passo adiante e migrar para longe
.keyup()
e, em vez disso, padronizar em.on()
, o que pode ser mais claro sobre delegação de eventos. Por exemplo:No caso acima, o segundo argumento
.on()
é um seletor a ser usado em tempo de execução para determinar se o elemento de origem deve acionar o manipulador de eventos e, dentro do manipulador de eventos,this
faz referência a esse elemento de origem.