Řešení úlohy

Co je zde splněno

  • Jeden addEventListener() na <ul> (delegace událostí).

  • Rozlišení cíle přes event.target a tagName ("SPAN" vs. "BUTTON").

  • Přepínání stavu úkolu pomocí classList.toggle("hotovo").

  • Odstranění konkrétní položky přes element.remove().

  • Kliknutí mimo text nebo tlačítko nic nedělá.

Vylepšení oproti začátečnické verzi

  • .matches() a .closest() pro robustnější a čitelnější práci s cílem události.

  • Šipková funkce a destrukturalizace z e pro stručnost.

  • button[type="button"] – prevence nežádoucího odesílání formuláře, pokud by se kód někdy vložil do <form>.

  • Jemné CSS úpravy (user-select, systémové písmo).