Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Dúvida Change Event

Bom dia,

Estou assistindo as aulas refazendo os códigos com a versão mais nova do jQuery. Portanto, o evento input não existe mais, agora o change tomou seu lugar. Contudo, na documentação fala:

"Mudar o valor de um elemento JavaScript utilizando o val() não ativará o evento"

De tal forma, o evento só é ativado quando eu tiro o foco do textarea e não quando o value é alterado.

<textarea class="campo-digitacao" rows="8" cols ="40" value=""></textarea>

<ul>
    <li><span id="contador-caracteres">0</span> caracteres</li>
    <li><span id="contador-palavras">0</span> palavras</li>
</ul>
const contadorCaractere = $("#contador-caracteres");
const contadorPalavra = $("#contador-palavras");
const caixaTexto = $(".campo-digitacao");

caixaTexto.change(() => console.log(caixaTexto.val().split('')))

Qual é a solução para isso?

Desde já, agradeço pela atenção!

4 respostas
solução

Mbthales, boa tarde!

Realmente a função input, não funciona mais, mas, como solução/alternativa você pode usar o on() fazendo da seguinte forma

$("input").on('input', () => { console.log("mudou") });

Espero ter ajudado e bons estudos!

Deu certo, muito obrigado!

Mas tenho outra dúvida, se change() é a versão resumida de on("change"...), por qual motivo não há um evento input?

mbthales, boa tarde!

Segundo um dos mantenedores do framework:

As abreviações de eventos foram descontinuadas, portanto, não planejamos introduzir novas. Evite também usar os existentes, como o $('elemento').change()

Espero ter ajudado e bons estudos!

Novamente, muito obrigado pela ajuda!