Navěšování události při změně DOM – best practice?
- BuGeR
- Člen | 45
Dobrý den,
mám možná trochu obecný dotaz, ale pokusím se co nejlépe nastínit situaci.
Máme vlastní CMS, a v tom editor, ve kterém se tvoří stránky. Ty stránky se tvoří tak, že se do nich přetáhnou různé komponenty metodou drag & drop. Ty komponenty se tam technicky nepřetáhnou, ale zkopírují. Takže se změní DOM – vzniknou nové elementy. V každé komponentě je pak spousta dynamických prvků, na které jsou navěšené různé události – onclick, apod.. Navíc některé prvky se aktualizují (při ruzných akcích) ajaxem.
Aktuálně to řešíme tak, že při jakékoliv změně zavoláme funkci, která se té změny týká. Např. vznikne nějaký element, a úplně dole v kódu toho nového elementu je nabindujElement1(). A v tom nabindujElement1() jsou pak věci typu $(„.title.editable“).click(function() {…
Jenže to mi připadá strašně prasácké a neumím si představit, že bychom to takto řešili v budoucnu, kdy bude aplikace růst, a bude tak vznikat strašně velké množství takových funkcí.
Můj dotaz tedy zní, existuje nějaká „best practice“, jak tohle řešit? Popřípadě jak tohle řešíte vy?
Děkuji.
- Gappa
- Nette Blogger | 208
Nejlepší je asi mít „jeden event“ (na nějakém společném containeru, nebo rovnou na html/body) a řešit to pomocí něj: