Witam,
Mam pytanie, a zarazem problem, może opiszę po krótce.
Apka w jsie. Po nacisnięciu btn__add wyświetla mi diva z inputami, oraz przyciskiem save i cancel. Użytkownik wpisuje nazwe, i zapisuje. Jest validacja, tworzy się task w obiekcie i jako element LI w UL.
W globalscope, w klasie APP, mam listener na btn__save i btn__cancel ( save tworzy obiekt, cancel wychodzi i samyka inputa poprzez remove ()).
I teraz pytanie.
Implementuje opcję edycji tasku. Po naciśnięciu elementu li z btn__edit, ponownie wyświetla mi się mój div z inputami i wypełnionymi danymi do edycji.
Natomiast btn__save i btn__cancel dalej mają przypisane funkcje do zapisu i stworzenia nowego obiektu.
Moje pytanie. Jak rozwiązać ten problem które rozwiązanie będzie najlepsze, dodam że div input zmienia swoje miejsce w doomTree i zastępuje przy edycji element li.
Przy add_new jest to, UL > LI, LI, LI | DIV_INPUT
PRZY task_edit jest to, UL > LI, DIV_INPUT, LI LI ,,,,,,, <= li elm zastąpiony div inputem.
- rozwiązanie 1: usunąć global scope, i badać poprzez container-listener --- E. target - parentNode. Czyli raz parent jest Ulem ( w przypadku edycji ), w przypadku dodawania nowego jest jeszcze wyżej.
-rozwiązanie 2. EventTarget.removeEventListener() - słyszałem o czymś takim ale nie wiem czy działa.
-rozwiązanie 3. Zrobić osobnego diva z klasą edit i do niego osobne listenery.
Jakieś inne rozwiązanie ?
Chodzi o czysty JS, wiem że w reacie nie byłoby problemu.
Prosiłbym o wskazówkę.