Navěšování události při změně DOM – best practice?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
BuGeR
Člen | 45
+
0
-

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
+
0
-

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: