Thread View: pl.comp.lang.javascript
6 messages
6 total messages
Started by lotz.jaroslaw76
Thu, 05 Apr 2012 12:38
Javascript nie widzi ID elementu który ładowany jest via ajax do strony głównej
Author: lotz.jaroslaw76
Date: Thu, 05 Apr 2012 12:38
Date: Thu, 05 Apr 2012 12:38
48 lines
2756 bytes
2756 bytes
Witam Wszystkich
Jestem "świeży" w javascript i natknąłem się na problem który już dwa dni nie daje mi spać..
ale do rzeczy:
treść nagłówka ze strony głównej:
#######################################################
<head>
<script type="text/javascript" src="js/ajax.js"></script>
<script type="text/javascript" src="js/tab-view.js"></script>
<script type="text/javascript" src="js/ajax-dynamic-content.js"></script>
<script type="text/javascript" src="js/simpletreemenu.js"></script>
<script type="text/javascript">
function xxxx()
{
ddtreemenu.createTree("treemenu1", false);
}
</script>
</head>
#####################################################
Problem dutyczy menu budowanego dynamicznie:
ddtreemenu.createTree("treemenu1", false);
poniewaz znaczniki UL i LI (zawartosć drzewa)zamknięte w ID=ddtreemenu znajdują się na stronie która jest ładowana przez AJAX skrypt ich nie widzi! próbowałem napisać funkcję która najpierw załaduje zawartosć a potem zbuduje drzewo i nie działa:
<script type=\"text/javascript\">
function buduj_drzewo(zmienna)
{
addAjaxContentToTab('".ZAKLADKA_2."','sh_drzewo.php);
ddtreemenu.createTree("treemenu1", false);
}
</script>";
natomiast umieszczenie na stronie ładowanej poprzez ajax czegoś takiego:
<a href="#" onclick="xxxx()">menu buduj</a>
działa bez problemu i drzewo sie buduje po kliknięciu.
Pytanie - jak zmusic skrypt zeby automatycznie po załadowaniu kodu z drzewem pobieranego via ajax zbudował drzewo.
bardzo proszę o pomoc.
Re: Javascript nie widzi ID elementu który ładowany jest via ajax do strony głównej
Author: NotBear
Date: Thu, 05 Apr 2012 17:36
Date: Thu, 05 Apr 2012 17:36
14 lines
1471 bytes
1471 bytes
W dniu 2012-04-05 14:38, lotz.jaroslaw76@gmail.com pisze:
> addAjaxContentToTab('".ZAKLADKA_2."','sh_drzewo.php);
> ddtreemenu.createTree("treemenu1", false);
Technika AJAX, jak sama nazwa wskazuje, jest asynchroniczna. Czyli
skrypt po odpaleniu addAjaxContentToTab(...) nie czeka, ale wykonuje się
dalej.
Aby zapewnic synchronicznosc, CreateTree(...) moznaby wywolac w reakcji
na bezbledne zakonczenie akcji ajaksowej (callback).
--
NotBear
Re: Javascript nie widzi ID elementu który ładowany jest via ajax do strony głównej
Author: Jarek Lotz
Date: Thu, 05 Apr 2012 21:42
Date: Thu, 05 Apr 2012 21:42
13 lines
1658 bytes
1658 bytes
> > Aby zapewnic synchronicznosc, CreateTree(...) moznaby wywolac w reakcji > na bezbledne zakonczenie akcji ajaksowej (callback). > > -- Jeżeli dobrze rozumiem, oprogramowac to po stronie funkcji buduj_drzewo()? Coś w stylu : jeżeli ajax zwrócił ze załadowal stronę okej to zbuduj drzewko. Jakoś takoś?
Re: Javascript nie widzi ID elementu który ładowany jest via ajax do strony głównej
Author: NotBear
Date: Thu, 05 Apr 2012 23:35
Date: Thu, 05 Apr 2012 23:35
18 lines
1747 bytes
1747 bytes
W dniu 2012-04-05 23:42, Jarek Lotz pisze: > Jeżeli dobrze rozumiem, oprogramowac to po stronie funkcji > buduj_drzewo()? > Coś w stylu : jeżeli ajax zwrócił ze załadowal stronę okej to zbuduj > drzewko. Nie. Taki typowy przyklad realizacji tego zadania znajdziesz tu: http://stackoverflow.com/a/5485561 W Twoim przypadku w miejscu alert(data); powinno znalezc sie wstawienie pobranej ajaksem listy do dokumentu i uruchomienie funkcji realizujacej drzewo. BTW, Twoja biblioteka ajax-dynamic-content.js pochodzi z jakiegoś muzeum techniki (ostatnia zmiana w 2006) i mrok sie w jej wnetrzu czai ;-) -- NotBear
Re: Javascript nie widzi ID elementu który ładowany jest via ajax do strony głównej
Author: Jarek
Date: Fri, 06 Apr 2012 12:43
Date: Fri, 06 Apr 2012 12:43
15 lines
1757 bytes
1757 bytes
> > BTW, Twoja biblioteka ajax-dynamic-content.js pochodzi z jakiegoś muzeum > techniki (ostatnia zmiana w 2006) i mrok sie w jej wnetrzu czai ;-) > > -- Witam czytam czytam i czytam i żadnych konkluzji... Czy sugerujesz żeby skorzystać na Jquery ? i przerobić cały projekt. Wydaje mi się ze dorobienie callback do tego co mam nie jest możliwe...
Re: Javascript nie widzi ID elementu który ładowany jest via ajax do strony głównej
Author: Herr
Date: Fri, 06 Apr 2012 18:00
Date: Fri, 06 Apr 2012 18:00
38 lines
2182 bytes
2182 bytes
Jarek wrote:
>
> >
> > BTW, Twoja biblioteka ajax-dynamic-content.js pochodzi z jakiegoś muzeum
> > techniki (ostatnia zmiana w 2006) i mrok sie w jej wnetrzu czai ;-)
> >
> > --
>
>
> Witam
> czytam czytam i czytam i żadnych konkluzji...
>
> Czy sugerujesz żeby skorzystać na Jquery ? i przerobić cały projekt..
>
> Wydaje mi się ze dorobienie callback do tego co mam nie jest
> możliwe...
>
Z tego co widzę to używana przez ciebie biblioteka ma obsługę callbacku
wywoływanego po zakończeniu ładowania:
1) tworzysz funkcję która ma być wywołana po poprawnym zakończeniu
pobierania danych, np.
function pokemon() { alert("gotta catch'em all!'); }
2) podajesz jej nazwę w trzecim parametrze funkcji
ajax_showContent / ajax_loadContent, (sprawdzone na oficjalnym demie):
ajax_loadContent('news1','external/externalfile1.html','pokemon');
--
Herr C(...)a
mój e-mail? http://cerbermail.com/?YWDqT8olYO
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads