4
respostas

REMOVER LINHA PADRÃO

Eu já comentei diversas vezes sobre a metodologia de aulas do curso de JQUERY. É muito fraca. Antes de iniciar esta aula, o botão REMOVER para a linha padrão funcionava perfeitamente. Após o acompanhamento da aula , ponto a ponto, o botão REMOVER parou de funcionar para linha padrão e para as novas linhas começou a funcionar. Favor rever o vídeo a partir dos 12 minutos e verifica que aula fica pendente de explicar o que ele fez com a linha que foi retirada na função removeLinha. O instrutor fala que será descolocada para outra parte do programa, mas não mostra. Nem tão pouco a explicação está na transcrição. Deprimente ter ficar caçando pelo em ovo . Mais uma vez parado por falhas do instrutor. Está punk se dedicar a este curso de JQUERY. Ninguém toma uma atitude.

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

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

function atualizaTamanhoFrase() {
      var frase = $(".frase").text();
      //console.log(frase);
      var numPalavras = frase.split(" ").length;
      //console.log(numPalavras);

      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--;
                //console.log(tempoRestante);
                $("#tempo-digitacao").text(tempoRestante);
                if (tempoRestante < 1) {
                      clearInterval(cronometroID);
                      finalizaJogo();
                }
          },1000);
  });

  function finalizaJogo() {
          campo.attr("disabled", true); 
          campo.toggleClass("campo-desativado"); 
          inserePlacar();
  }

}

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

      if(digitado == comparavel) {
        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 = "Marcos";
    var numPalavras = $("#contador-palavras").text();
    var numCaracteres = $("#contador-caracteres").text();

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

    corpoTabela.prepend(linha); 
}

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

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

      link.append(icone);//Insere o icone em i, no "a".

      colunaRemover.append(link);

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

      return linha;

}

function removeLinha() {

          event.preventDefault();
          $(this).parent().parent().remove();   

}


function reiniciaJogo() {

    campo.attr("disabled", false);
      campo.val("");  
      $("#contador-palavras").text("0");  
      $("#contador-caracteres").text("0");  
      $("#tempo-digitacao").text(tempoInicial);
      inicializaCronometro();
      campo.toggleClass("campo-desativado")
      campo.removeClass("borda-vermelha"); //remove a cor da borda, voltando para o original
      campo.removeClass("borda-verde"); //remove a cor da borda, voltando para o original

}
4 respostas

Oi, Marcos, tudo bem?

O código que você compartilhou aqui teve é que você relata não funcionar para deletar a linha padrão? Pois testei e não tive problema.

Quanto a questão da didática, entendo que essas intercorrências podem atrapalhar no progresso do estudo. Quando finalizar o curso, você pode avaliar e deixar uma mensagem esclarecendo os pontos que deixou a desejar no curso. Sempre damos a devida importância aos feedbacks, sejam positivos ou negativos, para que possamos entregar cada vez mais os melhores conteúdos para nossos alunos e alunas.

Lais acho que vc não entendeu. O programa deletava a linha de dados já incorporada internamente, e não deletava novas linhas inseridas. Após a aula, a situação inverteu: Novas linhas são deletadas e aquela interna do programa NÃO. é mais deletada. Acabei de testar neste momento, e ainda não funciona. Se necessário podemos agendar um call e vc acessar remotamente meu computador para vc avaliar melhor. Preciso dar continuidade ao curso de forma urgente.

O meu está ocorrendo o mesmo problema podem me ajudar?

var tempoInicial = $("#tempo-digitacao").text();
var botaoReiniciar = $("#botao-reiniciar");
var campoDigitacao = $(".campo-digitacao");

// Pega o ano atual e atualiza no footer
const ano = $("#ano");
const anoAtual = new Date();

ano.text(anoAtual.getFullYear());

$(function() {

    atualizaTamanhoFrase();
    inicializaContadores();
    inicializaCronometro();
    inicializaMarcadores();
    botaoReiniciar.click(reiniciaJogo);

});

function atualizaTamanhoFrase() {

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

}

function inicializaContadores() {

    campoDigitacao.on("input", function() {

        var conteudo = campoDigitacao.val();
        var quantidadePalavra = conteudo.split(/\S+/).length - 1;

        $("#contador-palavras").text(quantidadePalavra);

        var quantidadeCaracteres =  conteudo.length;

        $("#contador-caracteres").text(quantidadeCaracteres);

    });

}

function inicializaCronometro() {

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

    campoDigitacao.one("focus", function() {

        botaoReiniciar.attr("disabled", true);

        var cronometroID = setInterval(function() {

        tempoRestante--;

        $("#tempo-digitacao").text(tempoRestante);

            if(tempoRestante < 1) {

                clearInterval(cronometroID);
                finalizaJogo();

            }

        }, 1000)

    });

}

function finalizaJogo() {

    campoDigitacao.attr("disabled", true);
    botaoReiniciar.attr("disabled", false);
    campoDigitacao.toggleClass("campo-desativado");

    inserePlacar();

}

function inicializaMarcadores() {

    var frase = $(".frase").text();
    campoDigitacao.on("input", function() {

        var digitado = campoDigitacao.val();
        var comparavel = frase.substr(0, digitado.length);

        if(digitado == comparavel) {

            campoDigitacao.addClass("borda-verde");
            campoDigitacao.removeClass("borda-vermelha");

        } else {

            campoDigitacao.addClass("borda-vermelha");
            campoDigitacao.removeClass("borda-verde");

        }

    });

}

function inserePlacar() {

    var corpoTabela = $(".placar").find("tbody");
    var usuario = "Pedro";
    var numeroPalavras = $("#contador-palavras").text();

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

    corpoTabela.prepend(linha);

}

function novaLinha(usuario, numPalavras) {

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

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

    link.append(icone);

    colunaRemover.append(link);

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

    return linha;

}

function removeLinhaPadrao() {

    var linhaRemover = $(".botao-remover").click(function() {

        console.log($(this).parent().parent().remove());

    });

    return linhaRemover;

}

function removeLinha() {

    event.preventDefault();
    $(this).parent().parent().remove();

}

function reiniciaJogo() {

    campoDigitacao.attr("disabled", false);
    campoDigitacao.val(""); // apaga o conteudo do campo

    $("#contador-palavras").text("0"); 
    $("#contador-caracteres").text("0");
    $("#tempo-digitacao").text(tempoInicial);

    inicializaCronometro();

    campoDigitacao.toggleClass("campo-desativado");

    campoDigitacao.removeClass("borda-verde");
    campoDigitacao.removeClass("borda-vermelha");

}

Oi, Marcos!

O código que você passou não tem o usuário padrão, a linha padrão, somente para novas linhas adicionadas, por isso que quanto testo, funciona. Pode compartilhar o restante do código para eu entender melhor esse comportando, pois estou testando o trecho do código que compartilhou com o projeto do curso e isso pode estar gerando diferanças.

O mesmo para o Icaro, compartilha os seus demais códigos, placar.js e principal.html.