5
respostas

Meu código final não está funcionando

Olá pessoal,

Alguém consegue me ajudar a identificar o que está errado com meu código?

Obs: antes de eu rodar o servidor e separar o código em arquivos diferentes, apenas o botão deletar funcionava. O botão concluir nunca funcionou.

main:

import BotaoConclui from "./componentes/concluirTarefa" import BotaoDeleta from "./componentes/deletaTarefa"

const criaTarefa = (evento) => { evento.preventDefault() const input = document.querySelector('[data-form-input]') const valor = input.value;

const lista = document.querySelector('[data-list]')

const tarefa = document.createElement('li')
tarefa.classList.add('task')
const conteudo = `<p class="content">${valor}</p>`
tarefa.innerHTML = conteudo
tarefa.appendChild(BotaoConclui())
lista.appendChild(tarefa)
tarefa.appendChild(BotaoDeleta())

input.value = " "

}

const novaTarefa = document.querySelector('[data-form-button]') novaTarefa.addEventListener('click', criaTarefa)

concluirTarefas:

const BotaoConclui = () => { const botaoConclui = document.createElement('button') botaoConclui.classList.add('check-button') botaoConclui.innerText = 'concluir' botaoConclui.addEventListener('click', concluirTarefa)

return botaoConclui

}

const concluirTarefa = (evento) => { const botaoConclui = evento.target

const tarefaCompleta = botaoConclui.parentElement

tarefaCompleta.classList.toggle('done')

}

export default BotaoConclui

deletaTarefa

const BotaoDeleta = () => { const botaoDeleta = document.createElement('button')

botaoDeleta.innerText = 'deletar'
botaoDeleta.addEventListener('click' , deletarTarefa)
return botaoDeleta

}

const deletarTarefa = (evento) => { const botaoDeleta = evento.target

const tarefaCompleta = botaoDeleta.parentElement

tarefaCompleta.remove()

return botaoDeleta

}

export default BotaoDeleta

5 respostas

Eae beleza? Analisando o código, acredito que o erro está na ordem que você colocou lá na função criaTarefa. A linha: lista.appendChild(tarefa) , coloca para cima da linha tarefa.appendChild(BotaoConclui()). Tenta isso, se não der certo comenta aqui.

Beleza, Matheus, e ai?

Eu fiz o que você indicou e não funcionou. Eu vi no console do navegador que ao apertar em "novo item" aparece esse erro:

Access to script at 'file:///C:/Users/Cassiano%20Almeida/Desktop/Estudos%20Alura/Forma%C3%A7%C3%A3o%20Front-End/JS%20na%20Web%20Manipule%20o%20DOM%20com%20JavaScript/1823_DOM-projeto_incial/1823_DOM-projeto_incial/projeto_inicial/main.js' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, chrome-untrusted, https.

Não está acessando o script? Pode me ajudar a interpretar esse erro?

Pela mensagem que você postou, acredito que você está dando dois cliques no arquivo html para ele abrir, e então ele está tentando acessar o site pelas rotas do seu computador: file:///C:/Users/Cassiano... Se você estiver utilizando o VSCode, baixe uma extensão chamada live server, e depois disso, la no VSCode mesmo, clique com o botão direito em cima do arquivo html e clique em: Open with live server. Essa extensão vai fazer com que o seu site rode em um servidor, e provavelmente vai resolver este problema.

Desculpe, Matheus, tem razão.

Agora eu já abri o servidor local, mas não querendo abusar, poderia me ajudar com mais esse erro que está aparecendo quando clico em "novo item"?

GET http://127.0.0.1:5500/projeto_inicial/componentes/concluirTarefa net::ERR_ABORTED 404 (Not Found)

Verifica se no seu arquivo main.js, você está importando corretamente o botão de concluir a tarefa. import BotaoConclui from "./componentes/concluirTarefa.js"