Oi pessoal,
Estou com um problema no botão de remover a linha. Ele está identificando o click, já que o event.preventDefault() surtiu efeito, mas ele parece não estar identificando que o "this" se refere a ao objeto $(".botao-remover).
Javascript:
var tempoInicial = $("#tempo-digitacao").text();
var campo = $(".campo-digitacao");
$( () => {
atualizaTamanhoFrase();
inicializaContadores();
inicializaCronometro();
$("#botao-reiniciar").click(reiniciaJogo);
inicializaMarcadores();
})
function atualizaTamanhoFrase() {
var frase = $(".frase").text();
var numPalavras = frase.split(" ").length;
var tamanhoFrase = $("#tamanho-frase")
tamanhoFrase.text(numPalavras);
}
function inicializaContadores() {
campo.on("input",() => {
var conteudo = campo.val();
var qtdPalavras = conteudo.split(/\S+/).length -1;
$("#contador-palavras").text(qtdPalavras)
$("#contador-caracteres").text(conteudo.length)
});
}
function inicializaCronometro() {
var tempoRestante = $("#tempo-digitacao").text();
campo.one("focus", () => {
var cronometroID = setInterval(() =>{
tempoRestante -= 1;
$("#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", () => {
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 = "Cassiano";
var numPalavras = $("#contador-palavras").text();
var botaoRemover = "<a href='#'><i class='small material-icons'>delete</i></a>"
var linha = `<tr>
<td>` + usuario + `</td>
<td>` + numPalavras + `</td>
<td>` + botaoRemover + `</td>
</tr>`;
corpoTabela.append(linha);
}
$(".botao-remover").click( (event) => {
console.log(this)
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")
campo.removeClass("borda-verde")
}
HTML:
<section class="placar">
<h3 class="center">Placar</h3>
<table class="centered bordered">
<thead>
<tr>
<th>Nome</th>
<th>No. de palavras</th>
<th>Remover</th>
</tr>
</thead>
<tbody>
<tr>
<td>Cassiano</td>
<td>10</td>
<td>
<a href="#" class="botao-remover">
<i class="small material-icons">delete</i>
</a>
</td>
</tr>
</tbody>
</table>
</section>