1
resposta

Event listener executa sem o click

Olá,

Estou com o seguinte problema, o event listener está sendo executado mesmo sem que eu faça click no botão concluir.

o console.log que está em concluir tarefa mostra todos os ids. podem me ajudar?

export const BotaoConclui = (tarefa,id) => {
    const botaoConclui = document.createElement('button');
    botaoConclui.classList.add('check-button');
    botaoConclui.innerText = "Concluir";

    botaoConclui.addEventListener('click', concluirTarefa(tarefa,id));
    return botaoConclui;
}

const concluirTarefa = (tarefa,id)=>{
    let tarefas = JSON.parse(localStorage.getItem('tarefas'));
    console.log(id);
    tarefa.concluida = !tarefa.concluida;

    localStorage.setItem('tarefas', JSON.stringify(tarefas));
}
1 resposta

Fala ai Laura, tudo bem? Isso acontece porque você está chamando a função concluirTarefa em vez de vinculá-la ao listener de click, tente mudar para:

botaoConclui.addEventListener('click', () => concluirTarefa(tarefa,id));

Dessa forma você vai vincular uma função que quando executada vai chamar a concluirTarefa.

Espero ter ajudado.