🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#51081
Author: lotz.jaroslaw76
Date: Thu, 05 Apr 2012 12:38
48 lines
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
#51082
Author: NotBear
Date: Thu, 05 Apr 2012 17:36
14 lines
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
#51083
Author: Jarek Lotz
Date: Thu, 05 Apr 2012 21:42
13 lines
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
#51084
Author: NotBear
Date: Thu, 05 Apr 2012 23:35
18 lines
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
#51085
Author: Jarek
Date: Fri, 06 Apr 2012 12:43
15 lines
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
#51086
Author: Herr
Date: Fri, 06 Apr 2012 18:00
38 lines
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