Traccia Soluzione Traccia
L’obiettivo di oggi è creare una semplice TODO list per la gestione delle cose da fare in una giornata. Inserendo un nuovo task si deve accodare agli altri già presenti e cliccandoci sopra deve essere rimosso in quanto considerato completato.
I task devono essere salvati nel localStorage del browser e ricaricati se presenti all’apertura della pagina.
Soluzione
Pagina HTML
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" />
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" />
< input id = "new-task" type = "text" placeholder = "Cosa devi fare?" />
< button id = "new-task-btn" >Aggiungi Task</ button >
< button id = "clear-btn" >Pulisci</ button >
< script src = "script.js" ></ script >
Pagina Script.js
Classe TODOList
this .tasks = this . caricaTask ();
console. log ( "tasks" , this .tasks);
this . generaNuovoTask (task);
console. log ( "tasks" , this .tasks);
localStorage. setItem ( "tasks" , JSON . stringify ( this .tasks));
const index = this .tasks. indexOf (task);
this .tasks. splice (index, 1 );
localStorage. setItem ( "tasks" , JSON . stringify ( this .tasks));
const tasks = JSON . parse (localStorage. getItem ( "tasks" )) ?? [];
const todo = document. getElementById ( "todo" );
const p = document. createElement ( "p" );
p. appendChild (document. createTextNode (task));
p. addEventListener ( "click" , ( e ) => {
this .tasks. forEach (( task ) => {
const todo = document. getElementById ( "todo" );
const p = document. createElement ( "p" );
p. appendChild (document. createTextNode (task));
p. addEventListener ( "click" , ( e ) => {
Impostazione dei listener al caricamente e creazione TODOList
document. addEventListener ( "DOMContentLoaded" , () => {
const newTaskBtn = document. getElementById ( "new-task-btn" );
const clearBtn = document. getElementById ( "clear-btn" );
const input = document. getElementById ( "new-task" );
const todoList = new TODOList ();
newTaskBtn. addEventListener ( "click" , () => {
todoList. aggiungiTask (input.value);
clearBtn. addEventListener ( "click" , () => {
console. log ( "pulisci task" );
input. addEventListener ( "keypress" , ( e ) => {
todoList. aggiungiTask (input.value);