1
resposta

Na function sincronizaPlacar está gerando um objeto a mais.

// placar.js

$("#botao-placar").click(mostraPlacar);
$("#botao-sync").click(sincronizaPlacar);

function inserePlacar() {

    var corpoTabela = $(".placar").find("tbody");
    var usuario = "Lisa";
    var numPalavras = $("#contador-palavras").text();
    var botaoRemover = "<a href='#'><i class='small material-icons'>delete</i></a>" ;

    var linha = novaLinha(usuario,numPalavras);
    linha.find (".botao-remover").click(removeLinha);


    corpoTabela.prepend(linha);
    $(".placar").slideDown(500);
    scrollPlacar();

}

function scrollPlacar() {

    var posicaoPlacar = $(".placar").offset().top;
    $("body").animate(
    {
        scrollTop: posicaoPlacar + "px"
    }, 1000);

}

function novaLinha(usuario, palavras){

    var linha = $("<tr>");
    var colunaUsuario = $("<td>").text(usuario);
    var colunaPalavras = $("<td>").text(palavras);
    var colunaRemover = $("<td>");

    var link = $("<a>").attr("href", "#").addClass("botao-remover");
    var icone = $("<i>").addClass("small").addClass("material-icons").text("delete");

    link.append(icone);
    colunaRemover.append(link);

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

    return linha;
}

function removeLinha(event){
    event.preventDefault();

    var linha = $(this).parent().parent();
    linha.fadeOut(1000);
    setTimeout(function (){
        linha.remove();
    }, 1000);

}

function mostraPlacar(){

    $(".placar").stop().slideToggle(600);

}

function sincronizaPlacar(){
    var placar = [];
    var linhas = $("tbody>tr");

    linhas.each(function(){
        var usuario = $(this).find("td:nth-child(1)").text();
        var palavras = $(this).find("td:nth-child(2)").text();
        console.log(usuario);

        var score = {
            usuario: usuario,
            pontos: palavras            
        };

        placar.push(score);

    });

    var dados = {
        placar: placar
    };

    $.post("http://localhost:3000/placar", dados, function(){

        console.log("Placar sincronizado com sucesso");
    });
 }

Meu código está gerando um objeto a mais quando utilizo o sincronizaPlacar. O que esta acontecendo? Não consegui achar o problema.

1 resposta

Olá Elisabeth,

Testei seu código aqui e ele está salvando o placar corretamente. Como assim ele está salvando um objeto a mais ? Qual era o comportamento que você esperava e o que está acontecendo de fato ?

Você removeu todos itens do HTML do placar e está deixando apenas os que são criados pelo jogo lá ?

Nos dê mais detalhes sobre o seu problema para que possamos te ajudar melhor :)

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