2
respostas

qdo clico no botão remover, ele não remove, mas ao atualizar a página ele é removido, o que está acontecendo?

const inserePlacar = () => {
    var corpoTabela = $(".placar").find("tbody");
    var usuario = "Douglas"
    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.append(linha); //prepend coloca na frente da lista criada, append põe depois

}

const 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");

    // Icone dentro do <a>
    link.append(icone);

    // <a> dentro do <td>
    colunaRemover.append(link);

    // Os três <td> dentro do <tr>
    linha.append(colunaUsuario);
    linha.append(colunaPalavras);
    linha.append(colunaRemover);

    return linha;

}

const removeLinha = (event) => {
    event.preventDefault();
    $(this).parent().parent().remove();
}
2 respostas

Oi, Talita, tudo bem?

Acredito que você inverteu a ordem aqui: var link = $("<a>").attr("href", "#").addClass("botao-remover");

Sendo dessa forma:

var link = $("<a>").addClass("botao-remover").attr("href", "#");

Primeiro adicionamos a classe botao-removerpara depois atribuir valor ao atributo.

Testa e me fala se deu certo!

Oi, Laís, bem e vc? Testei aqui e não deu certo tbm, e na vdd reparei que some qdo eu atualizo a página. Só uma observação, da forma que eu tinha feito antes, é como está no curso (https://cursos.alura.com.br/course/jquery-a-biblioteca-do-mercado/task/20697 ), mandei o link para facilitar. Outra coisa que estava reparando agora é que, a variável

var botaoRemover = "<a href='#'><i class='small material-icons'>delete</i></a>"

ainda está no código, mas ela não é chamada em nenhum lugar...não sei se pode ser isso, mas algo que reparei