1
resposta

Click não habilita a apresentação da mensagem no console

<!DOCTYPE html>
<html lang="pt-br">
    <head>
          <meta charset="UTF-8">
          <title>Alura Typer</title>
    </head>
    <body>
          <h1>Alura Typer</h1>
          <p class="frase">Lorem ipsum dolor sit am et, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
          <ul class="informacoes">
              <li><span id ="tamanho-frase">19</span> palavras</li>
              <li><span id ="tempo-digitacao">10</span> segundos</li>
          </ul>
              <textarea class="campo-digitacao" rows="8" cols ="40"></textarea>
          <ul>
              <li><span id="contador-caracteres">0</span> caracteres</li>
              <li><span id="contador-palavras">0</span> palavras</li>
          </ul>
              <script src="jquery-3.6.0.js"></script>
              <script src="main.js"></script>
    </body>
</html>


var frase = $(".frase").text();
var numPalavras = frase.split(" ").length; 
var tamanhoFrase = $("#tamanho-frase");
tamanhoFrase.text(numPalavras);

var campo = $(".campo-digitacao");
campo.on("input", function() {
    var conteudo = campo.val();

 var qtdPalavras = conteudo.split(/\S+/).length - 1;    
$("#contador-palavras").text(qtdPalavras);

var qtdCaracteres = conteudo.length;
$("#contador-caracteres").text(qtdCaracteres);

campo.on("click", function(){
      console.log("Ola mundo, inicio da Jornada JQUERY");
    });
});

Acompanhando a aula com o professor, estando na parte 3 do curso de JQuery, foi adotada uma rotina (no final do arquivo main.js) que mostraria uma mensagem ao clicar na área de digitação. Eu não sei o que eu fiz, que o meu programa não mostra a mensagem ao clicar na área de digitação da atividade.

1 resposta

Oi Marcos!

Na verdade o seu código está sim mostrando uma mensagem ao clicar na área, porém só depois que o evento de input foi detectado no campo de texto. Isso está acontecendo porque a declaração do evento "click" está dentro do evento "input". Para testar isso basta digitar algo no input e em seguida clicá-lo, aí você conseguirá ver a mensagem no console!

A solução pra esse problema é simplesmente colocar o código do evento "click" fora do "input" da seguinte maneira:

campo.on("input", function() {
var conteudo = campo.val();

 var qtdPalavras = conteudo.split(/\S+/).length - 1;    
$("#contador-palavras").text(qtdPalavras);

var qtdCaracteres = conteudo.length;
$("#contador-caracteres").text(qtdCaracteres);

}); // fim do evento input

campo.on("click", function(){
    console.log("Ola mundo, inicio da Jornada JQUERY");
  });

Espero ter ajudado! Qualquer outra dúvida pode postar aqui :)