Falta pouco!

0 dias

0 horas

0 min

0 seg

1
resposta

Conseguir manipular os clicks com muita dificuldade kk

//var global//
const array = []

const li = document.createElement('li')
li.classList.add('app__section-task-list-item')
// abaixo da criação da li eu coloquei //
array.push(li)

li.onclick = () => {
// fiz um loop no valores da li que estão no array e então manipulei a lista antes de ativar a class //
for (const valores_array of array) {
if (valores_array.classList.contains('app__section-task-list-item-active')) {
valores_array.classList.remove('app__section-task-list-item-active')
}
}
tarefa_recebida.textContent = tarefa.descricao
li.classList.add('app__section-task-list-item-active')
} //fim da LI.ONCLICK

1 resposta

Hahaha, boa Reinaldo! A sensação de quando a gente consegue resolver um bug difícil é a melhor que tem, né? Parabéns pela persistência!

Sua lógica de guardar os elementos em um array para poder percorrer e "limpar" a seleção anterior funciona e resolve o problema perfeitamente. Chegar nessa solução por conta própria é o que realmente ensina.

Se me permite, vou te dar uma dica de uma abordagem alternativa que pode deixar o código um pouco mais enxuto e evita a necessidade de manter um array global. A ideia é, dentro do clique, primeiro procurar pelo item que já está ativo e remover a classe dele, para só depois adicionar a classe no item que foi clicado.

Ficaria algo assim:

li.onclick = () => {
    // 1. Procura se já existe algum elemento com a classe ativa
    const tarefaAtiva = document.querySelector('.app__section-task-list-item--active');
    
    // 2. Se existir, remove a classe dele
    if (tarefaAtiva) {
        tarefaAtiva.classList.remove('app__section-task-list-item--active');
    }

    // 3. Adiciona a classe no elemento que foi clicado agora
    tarefa_recebida.textContent = tarefa.descricao;
    li.classList.add('app__section-task-list-item--active');
}

vantagem é que você não precisa guardar uma lista separada de todos os "li". Você simplesmente "pergunta" ao documento qual elemento está ativo no momento e o desativa.

Mas, de novo, o mais importante é que você venceu o desafio! Mandou bem demais!