Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Contador gerando NaN.

Estou realizando a aula 3 do curso de JQuery, ondem criamos um jogo chamado Alura Typer.

Apesar dos códigos estarem idênticos ao do instrutor o meu gera mensagem de NaN ao invés de realizar corretamente a contagem.

/meu código/

var tempoRestante = $("#tempo-digitacao").text();
campo.one("focus", function() {
    var cronometroID = setInterval(function() {
        tempoRestante--;
        $("#tempo-digitacao").text(tempoRestante);
        if (tempoRestante < 1) {
            campo.attr("disabled", true);
            clearInterval(cronometroID);
        }
    }, 1000);
});

/conclusão/

Esta claro para mim que não esta acontecendo a conversão da string para o number. Porem nos códigos do instrutor não tem nenhum tipo de função para isso e funciona corretamente.

Como posso proceder?

5 respostas

Fala aí Giovani, beleza? Consegue postar o código JavaScript e HTML completos? Eu testei seu código aqui e deu tudo certo.

Fico no aguardo.

Boa tarde Matheus! Tudo ótimo e você?

Vou postar os códigos aqui abaixo.

/* HTML */

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <title>Alura Typer</title>
</head>
<body>
    <h1>Alura Typer</h1>
    <p class="frase">Esta frase tem seis belas palavras.</p>

    <ul class="informacoes">
      <li><span id="tamanho-frase">5</span> palavras.</li>
      <li><span id="tempo-digitacao">5</spam> 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="js/jquery.js"></script>
    <script src="js/main.js"></script>

</body>
</html>

/* JS */

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);
});

var tempoRestante = $("#tempo-digitacao").text();
campo.one("focus", function() {
    var cronometroID = setInterval(function() {
        tempoRestante--;
        $("#tempo-digitacao").text(tempoRestante);
        if (tempoRestante < 1) {
            campo.attr("disabled", true);
            clearInterval(cronometroID);
        }
    }, 1000);
});

/* Obrigado pela ajuda */

solução!

Giovani, seu problema está no fechando da tag do segundo span, você está fechando com m onde deveria ser n.

Apenas um errinho de digitação.

Espero ter ajudado.

Muito obrigado Matheus!

De nada, precisando não deixe de criar suas dúvidas.