Autor Zpráva
Dědeček
Profil *
Zdravím,

Pokud do stránky načtu ajaxem další prvky které mají elementy, které mají přiřazeny v js nějaké funkce, tak tyto funkce na ně nefungují. Musím natáhnout JS až na konci po tom co se prvky načtou do stránky. Jak toto řešit? Zkusil jsem to celé dát do funkce a volat ji při každém dočtení prvků do webu, ale funkce se potom opakují a časem se to zacyklí. Jak tedy udělat funkci která by se jen aktualizovala aby sama zjistila jake nove prvky jsou na webu pro které má něco dělat.

Řešil jsem to tady, ale bohužel nikdo neodpověděl .. http://diskuse.jakpsatweb.cz/?action=vthread&forum=8&topic=129223

Děkuji za rady.
peta
Profil
Musis pocitat s tim, ze ti nekdo odpovi nejdrive do 2 dnu.
V tematu jsi napsal, ze to mas vyresene, tudiz uz nikdo na to dal nereagoval. Prijde mi to logicke.
Odkaz na stranku, na ktere by jsme to mohli zkouset jsi ani v jednom tematu neuvedl. Prijde mi logicke, ze se nikomu nechtelo vytvaret si pokusny soubor, ktery by mu po doplneni kodu fungoval a pak ho nemel s cim chybnym porovnat.

Zasláno: 21.8.2011 23:25:50
"ale nefunguje na ně žádná funkce"
To je ovsem take logicke. Ty sice nactes dalsi prvky, ale nespustis na ne pridani toho eventu. Pridas prvek, ale nepridas k nemu ani mouseleave, ani click ani mouseenter.
Ajax je casova funkce ktera bez mimo normalni script kodu. Neco jako setTimeout. a az skonci, provede se funkce. Take muze skoncit na vyprseni casu spojeni a neprovede se nic. Celou tu dobu, treba 5 min, bys mel blokovany prohlizec, kdyby to nebezelo mimo.

$(window).load(function()
To je moc krasne, normalne by to fungovalo, ale koukej na tohle:
Nacita se stranka, spusti je ajax. Ajax je casova funkce a onload take. Takze rekneme, ze ajax pred dokoncenim stranky stihne jeste pridat 15 elementu, cili 30 a na konci stranky se spusti tvuj js, ktery k tem 30 elementum prida js udalosti. Dalsi ajax uz ale prida elementy, ale nema v sobe pokyn pro pridani eventu, takze je k nim neprida.
|----- html kod -------| // s prvnimi 15 elementy
|start onload --------konec onload:scripty v onload|
jeden ze scriptu...................................|-ajax-||------ajax-----||--ajax-----| //v tomto pripade to druhy ani treti ajax nestihnou
Dědeček
Profil *
Kdybych chtěl uvést příklad tak ho uvedu, je to záležitost teoretická. Zajímalo mě pouze zdali někdo takové řešil a jestli existuje nějaká funkce která dokáže script pro stránku aktualizovat. Jo vše jsem si uvědomil i to $(window).load() .. a vyřešil jsem to tak jak jsem psal. Jenže jakmile se načte více prvků .. nyní už 250 a načítají se po 15 tak než se načte poslední uživatel už dávno stránku projíždi a js stále nefunguje, protože se načte až se načte poslední prvek. Děkuji ti za tvé poučení přesně o to jsem totiž stál :)
_es
Profil
Dědeček:
Pokud do stránky načtu ajaxem další prvky které mají elementy, které mají přiřazeny v js nějaké funkce, tak tyto funkce na ně nefungují. Musím natáhnout JS až na konci po tom co se prvky načtou do stránky. Jak toto řešit?
Vyriešiš to celkom jednoducho: Po dynamickom pridaní prvkov im priradíš tie funkcie, teda upravíš to „načítanie prvkov AJAXom“ . Alebo priradíš udalosti tak, aby si využil ich „prebublanie“ na nejaký nadradený prvok, nejako podobne ako v tomto krátkom skripte.
Dědeček
Profil *
Tak stačilo využít funkce .live v jquery :)
pcmanik
Profil
Dědeček:
Nespravne vyuzitie, delegate urcite splni svoj ucel lepsie

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0