3
respostas

Cronometro e contadores não inicializam

Olá depois de fazer a divisão semântica do código, o os contadores não estão funcionando Já pesquisei e não encontrei o erro.

<!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 amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>

      <ul class="informacoes">
          <li><span id="tamanho-frase">5</span> palavras</li>
          <li><span id="tempo-digitacao">10</span> segundos</li>
      </ul>

      <textarea class="campo-digitacao" rows="8" cols="40"></textarea>
      <button id="botao-reiniciar">Reiniciar Jogo</button>

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

Main.js

var tempoInicial = $("#tempo-digitacao").text();
var campo = $(".campo-digitacao");

$(document).ready(function(){
    atualizaTamanhoFrase();
    inicializaContadores();
    inicializaCronometro ();
    $("#botao-reiniciar").click(reiniciaJogo);
});

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

function inicializaContadores {
    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);
    });
}

function inicializaCronometro {
    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);
    });

}

    function reiniciaJogo(){
        campo.attr("disabled",false);
        campo.val("");
        $("#contador-palavras").text("0");
        $("#contador-caracteres").text("0");
        $("#tempo-digitacao").text(tempoInicial);
        inicializaCronometro();
    }
3 respostas

Lucas,

faltou colocar abre e fecha parênteses () no fim de cada função, para indicar que são funções:

function atualizaTamanhoFrase() {
function inicializaContadores() {
function inicializaCronometro() {
Akashi eu coloquei mas mesmo assim o cronometro não começou a contar

Lucas,

copiei seu código lá de cima, e só fiz estas alterações, e funciona. Você salvou o arquivo depois de alterar? Clicou no campo de digitação (só assim ele começa a contagem)?

Copie os códigos que postou, cole nos seus arquivos originais, modifique, salve e teste pra ver.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software