Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

BUG adicionando pontuação

olá galera, estou com uma duvida curiosa, estava fazendo o utlimo modulo na parte de inserir tabelas, fiz todo processo que nem no exercicio mas por algum motivo na primeira vez ele insere direito a pontuação com o nome na tabela ,mas quando eu reinicio o jogo e faço novamente ele está duplica a TR, to a maior tempao tentando entender oque pode estar errado sem sucesso :/

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


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

});



$("#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() {
        $("#botao-reiniciar").attr("disabled",true);
        var idCronometro  = setInterval(function(){
            tempoRestante--;
            $("#tempo-digitacao").text(tempoRestante);
            if (tempoRestante < 1) {
                clearInterval(idCronometro);    
                finalizaJogo();
            }
        },1000);
    });    
}

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

    inicializaCronometro();
    campo.toggleClass("campo-desativado", false);
    campo.removeClass("borda-vermelha");
    campo.removeClass("borda-verde");


}

function inicializaMarcadores() {
    var frase = $(".frase").text();
    campo.on("input", function() {
        var digitado = campo.val();
        var comparado = frase.substr(0, digitado.length);

        if( digitado == comparado) {
            campo.addClass("borda-verde");
            campo.removeClass("borda-vermelha");
        } else {
            campo.addClass("borda-vermelha");
            campo.removeClass("borda-verde");

        }
    });

}

function inserePlacar() {
    var corpoTabela = $(".placar").find("tbody");
    var usuario = "luiz";
    var numPalavras  = $("#contador-palavras").text();

    var linha = novaLinha(usuario, numPalavras);

    corpoTabela.append(linha);

}

function novaLinha(usuario, palavras) {
    var linha = $("<tr>");
    var colunaUsuario = $("<td>").text(usuario);
    var colunaPalavras = $("<td>").text(palavras);

    linha.append(colunaUsuario);
    linha.append(colunaPalavras);

    return linha;
}

function finalizaJogo() {
    campo.attr("disabled", true);
    campo.toggleClass("campo-desativado", true);
    $("#botao-reiniciar").attr("disabled", false);
    inserePlacar();
}

agradeço muito a quem puder me ajudar

1 resposta
solução!

Olá Luiz,

Você está chamando o evento de click no botão reiniciar duas vezes:

$("#botao-reiniciar").click(reiniciaJogo);

Deixe apenas no $(function(){ ... }).