5
respostas

O sistema não remove linha padrão

function inserePlacar () {

    var tabela = $("section").find("tbody")
    var contadorPalavras = $("#contador-palavras").text();
    var usuario = "Vitor";

    var linha = novaLinha(usuario, contadorPalavras);

    linha.find(".remover").click(removeLinha)

    tabela.append(linha);
}
function removeLinha () {
    event.preventDefault();
    $(this).parent().parent().remove();
}

Ao incluir o evento de click na classe remove o sistema para de funcionar quando tenta remover a linha padrão que já começa. No próprio vídeo já não estava removendo, quando o professor clicava no botão para remover o event.preventDefault não funcionava e não removia a linha. Ele pensou que estava removendo porque o href="#" estava jogando a tela para o topo e dava a impressão que estava removendo.

5 respostas

Fala Vitor tudo bom?

O uso do event.preventDefault está correto, ele previne que o execute a operação padrão dele que é ir para a página passada no href. O ponto nesse exercício é passar o parâmetro event, para a função removeLinha, deixando-a assim:

function removeLinha (event) {
    event.preventDefault();
    $(this).parent().parent().remove();
}

O event, é passado para o removeLinha, quando o JavaScript executa-la dentro do contexto dele quando acontecer o evento de click

Segue um exemplo: https://codepen.io/soutomario/pen/owpwVO

Espero ter ajudado :)

Fala Vitor!

Deu tudo certo?

Olá tente inserir em qualquer linha livre o código:

$(".botao-remover").click(removeLinha);

Isso se faz necessário porque o codigo dos Instrutores só funcionam (neste nosso exemplo) após o inserir o placar (funcao) e consequentemente a funcao novaLinha.

E como a linhao padrao nao faz parte destas funcoes ela nao escuta o event click

Espero te-lo ajudado

Boa Bruno, acredito ser essa solução, pois a linha padrão nao escuta o evento de clique, pois nao passou pela função .find().

VAleu!

Acredito que não esteja funcionando porque a variavel linha é para criação de uma nova linha e não para já existente. Então se faz necessário esse código que o amigo acima apontou: $(".botao-remover").click(removeLinha);