Olá. Por que a função removeLinha não está recebendo o "event" como parâmetro?
function removeLinha(){
event.preventDefault();
$(this).parent().parent().remove();
}
Olá. Por que a função removeLinha não está recebendo o "event" como parâmetro?
function removeLinha(){
event.preventDefault();
$(this).parent().parent().remove();
}
Fala Dante, tudo bem? Espero que sim!
Acredito que não foi recebida por parâmetro por erro do instrutor que acredito que tenha esquecido de fazer isso! Porém o correto é receber por parâmetro sim, então ficaria:
function removeLinha(event){
event.preventDefault();
$(this).parent().parent().remove();
}
Espero ter ajudado, abraços e bons estudos :D
uma ideia...
criei um id para cada linha, ele é criado dinâmicamente juntamente com a linha, assim a função que remove dados vai atuar diretamente naquele id fiz isso pois além de ter problemas com o event, tive problemas com o $(this)
como foi feito:
criei uma variável global:
var countLinha = 0;
na hora de inserir dados no placar fiz um incremento sobre esse contador e passo o novo valor toda vez que criar uma linha nova aqui ele agora atualizado passa a se chamar numLinha, e é passado como parâmetro para criação de linha...
aqui veja:
removerDadosDoPlacar($("#linha-"+numlinha))
completo:
function insereDadosNoPlacar(usuario, qtdPalavras){
var tabela = $(".placar").find("tbody")
var numLinha = countLinha++
var linha = criaLinha(usuario, qtdPalavras, numLinha)
linha.find(".botao-remover").on("click",(event)=>{
event.preventDefault()
removerDadosDoPlacar($("#linha-"+numlinha))
})
tabela.prepend(linha)
}
agora ao criar a linha ela receberá um valor direferente e montará o id da linha com o attr().. veja:
var linha = $("<tr>").attr("id", "linha-"+numLinha)
completo:
function criaLinha(usuario, qtdPalavras, numLinha){
var linha = $("<tr>").attr("id", "linha-"+numLinha)
var colunaNome = $("<td>").text(usuario)
var colunaQtdPalavras = $("<td>").text(qtdPalavras)
var colunaRemove = $("<td>")
var btnRemover = $("<a>").addClass("botao-remover").attr("href", "#")
var icone = $("<i>").addClass("material-icons").text("delete_sweep")
btnRemover.append(icone)
colunaRemove.append(btnRemover)
linha.append(colunaNome)
linha.append(colunaQtdPalavras)
linha.append(colunaRemove)
return linha
}
ao realizar a ação de remover dados do placar eu apenas passo o id assim seleciono o id da linha direto e removo:
function removerDadosDoPlacar(id){
$(id).remove()
}
quanto a linha padrão: ela serve apenas para exemplificar, originalmente não deve existir ou deve vir de um db em caso real, ou algo assim, poranto se quiser manter ela com o evento atuado, basta atrelar o evento a ela e um id como 0, e o contador passa a iniciar a partir de 1 por exemplo, bom... uma ideia apenas... rs