Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [AJAX] kompletny kod - dlaczego nie ładuje danych inicjalnych?, Załadowanie przez AJAX diva z indtrukcjami
edgar72
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 27.08.2009
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Cześć,
Niestety dostaję białej gorączki an tę sprawę. Wcześniej już pisałem. Ktoś mi doradził, ale niestety nie poradziłem sobie. Teraz podaję pełne kody, może ktoś mi podpowie, jak to dziadostwo ustawić, żeby zadziałało.

http://193.218.155.141/~karolklos/test/test.html

Chodzi o to, że:
1) po wejściu na stronę nie dziąła suwak. DLACZEGO? Przecież window.onload() się wykonało...
2) te 6 linków na górze to testowe linki:
sub_01.php,
sub_02.php,
sub_03.php,
sub_04.php,
sub_05.html
to linki zawierające fragment kodu z treścią div do podmiany. Fajnie działa, ale niestety nie działa suwak
3) link ostatni:
ta_sama
powoduje cudowne zjawisko, bliżej niewyjaśnione, powodujące, ze suwak nagle zaczyna działać. Niestety jest to po porstu przeładowanie tej strony.

O CO MI CHODZI?
Chodzi mi o to, aby:
a ) po wejściu na stronę (od razu) działał suwak
b ) po wejściu na inny link i powrocie do strony z suwakiem na skutek kliknięcia w link "sub_05.html" ten suwak również działał.

Oczywiście będę bardzo zobowiązany i wdzięczny za wskazówki i podpowiedzi.
Pozdrawiam
KK.
Go to the top of the page
+Quote Post
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


wywala błąd i dlatego nie działa... zobacz sobie w moją sygnaturę a wszystko stanie się jasne (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
edgar72
post
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 27.08.2009
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Cytat(CuteOne @ 9.10.2011, 20:04:04 ) *
wywala błąd i dlatego nie działa... zobacz sobie w moją sygnaturę a wszystko stanie się jasne (IMG:style_emoticons/default/smile.gif)


Stary, pomyślisz pewnie, że jestem kretynem, ale nie wiem o jakiej sygnaturze piszesz :/

aaa - chodzi zapewne o Twój opis z Operą (IMG:style_emoticons/default/smile.gif) Sekunda, zaraz obadam.

Hej - tak, rzuca błąd. O taki:

[2011-10-09 20:23:11] JavaScript - http://193.218.155.141/~karolklos/test/test.html
Inline script thread
Uncaught exception: TypeError: Cannot convert 'o' to object
Error thrown at line 7, column 1 in jsScroller(o, w, h) in http://193.218.155.141/~karolklos/test/tes.../jsScroller.js:
var list = o.getElementsByTagName("div");
called from line 5, column 16 in nol() in http://193.218.155.141/~karolklos/test/test.html:
scroller = new jsScroller(document.getElementById("Scroller-1"), 800, 544);
called from line 8, column 12 in http://193.218.155.141/~karolklos/test/test.html:
window.onload = nol();

Wg mnie, nie może utworzyć obiektu z powodu niemożności znalezienia DIVu takiego: "Scroller-1"
Jeżeli mam rację, to on kłamie, bo taki DIV jest. Niżej...

help, help...

Najciekawsze jest to, że jak przerobię:

<script type="text/javascript">
var scroller = null;
var scrollbar = null;
function nol() {
scroller = new jsScroller(document.getElementById("Scroller-1"), 800, 544);
scrollbar = new jsScrollbar (document.getElementById("Scrollbar-Container"), scroller, false);
}
window.onload = nol ();
</script>

na

<script type="text/javascript">
var scroller = null;
var scrollbar = null;
window.onload = function () {
scroller = new jsScroller(document.getElementById("Scroller-1"), 800, 544);
scrollbar = new jsScrollbar (document.getElementById("Scrollbar-Container"), scroller, false);
}
</script>


TO DZIAŁA, przynajmniej na wejście na stronę...
Ale ja chciałbym to ajaxowo a nie tak normalnie...

Ten post edytował edgar72 9.10.2011, 19:11:12
Go to the top of the page
+Quote Post
everth
post
Post #4





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

Ostrzeżenie: (0%)
-----


Dziwne, spróbuj przesunąć skrypty na sam koniec <body>, ew. spróbuj uruchomić nol() z użyciem $(document).ready() - co nie zmienia faktu że tego błędu raczej nie powinno być.
Go to the top of the page
+Quote Post
edgar72
post
Post #5





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 27.08.2009
Skąd: Lublin

Ostrzeżenie: (0%)
-----


skrypty na sam koniec <body> - niestety nie działa. A ten drugi sposób, to muszę się poduczyć, jak tego użyć (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
everth
post
Post #6





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

Ostrzeżenie: (0%)
-----


Przeczytałem twój post raz jeszcze. Zapomnij o moim poprzednim. O ile dobrze rozumiem to ty próbowałeś wywołać funkcję nol() w momencie przypisania jej do zdarzenia window.onload (tak przynajmniej interpretuję zapis window.onload = nol() ).
Czyli:
[JAVASCRIPT] pobierz, plaintext
  1. window.onload = nol();
[JAVASCRIPT] pobierz, plaintext

wywołuje tak naprawdę funkcję nol() w momencie przypisania. Ponieważ w danym momencie drzewo DOM jeszcze nie jest kompletne (dopiero jest parsowane) więc zawartość funkcji nol() wyrzuca błąd.

W drugim przypadku bindujesz funkcję anonimową z zdarzeniem onload więc funkcja jest uruchamiana w momencie gdy DOM jest już gotowy -> więc działa. Mimo to zajrzyj sobie do dokumentacji jQuery (zwłaszcza że go dołączasz) i zobacz jak się używa tam metody $(document).ready() - będziesz miał efekt szybciej i podejrzewam że z mniejszą ilością problemów między przeglądarkami.

Cytat
Ale ja chciałbym to ajaxowo a nie tak normalnie...

Ajax jest już passé. Zapoznaj się z dokumentacją jQuery.
Go to the top of the page
+Quote Post
edgar72
post
Post #7





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 27.08.2009
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Hej, bardzo Ci dziękuję za analizę (IMG:style_emoticons/default/smile.gif)
Pouczające są Twoje wskazówki. Na pewno pomogą mi w dalszym rozgrywaniu problemu.

Pozdrawiam serdecznie,
KK.
Go to the top of the page
+Quote Post
CuteOne
post
Post #8





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


Cytat
Ajax jest już passé. Zapoznaj się z dokumentacją jQuery.

a jQuery to niby z czego korzysta... ?
Go to the top of the page
+Quote Post
everth
post
Post #9





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

Ostrzeżenie: (0%)
-----


@UP
Pewnie z logiki choć głowy za to nie dam (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
edgar72
post
Post #10





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 27.08.2009
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Cześć,
Niestety nie poradziłem sobie z tym problemem. Brakuje mi pomysłów, jak to rozwiązać. Przecież to się wydaje takie proste (IMG:style_emoticons/default/smile.gif)
Proszę Was jeszcze raz o wskazówki, ale bardziej dla początkującego, niż zaawansowanego.

Z góry dziękuję.
Go to the top of the page
+Quote Post
CuteOne
post
Post #11





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


No przecież kolega wyżej napisał rozwiązanie $(document).ready() lub jak kto woli $(function() {
Go to the top of the page
+Quote Post
--edgar72--
post
Post #12





Goście







Hej,
Zrobiłem tylko w nagłówku HEAD, o tak:

<script type="text/javascript">
var scroller = null;
var scrollbar = null;
$(document).ready(function {
scroller = new jsScroller(document.getElementById("Scroller-1"), 800, 544);
scrollbar = new jsScrollbar (document.getElementById("Scrollbar-Container"), scroller, false);
});
</script>

Link ten sam, co w pierwszym poście, i jest SUPER (IMG:style_emoticons/default/smile.gif) , ale tylko na wejście na stronę (IMG:style_emoticons/default/sad.gif) Po wejściu gdzie indziej i powrocie (czyli kliknięciu w sub_05.html ORAZ ta_sama) suwaczek nie chce się przesuwać...

Czyli teraz działa na wejście, ale po przeładowaniu nie działa ani po podmianie DIVa z contentem z suwakiem...

Dzięki za dotychczasowe podpowiedzi, ale nadal nie wiem, jak zrobić, aby działało we wszystkich przypadkach.
Proszę o pomoc.
Go to the top of the page
+Quote Post
-Gość-
post
Post #13





Goście







ERRATA - oczywiście zapomniałem wpisać "()", ale i tak nic się nie zminiło:

<script type="text/javascript">
var scroller = null;
var scrollbar = null;
$(document).ready(function() {
scroller = new jsScroller(document.getElementById("Scroller-1"), 800, 544);
scrollbar = new jsScrollbar (document.getElementById("Scrollbar-Container"), scroller, false);
});
</script>
Go to the top of the page
+Quote Post
edgar72
post
Post #14





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 27.08.2009
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Hej,
Czy miałby ktoś jeszcze jakiś pomysł na ten temacik?
Go to the top of the page
+Quote Post
kaem
post
Post #15





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


Dziwna rzecz... Zobacz, że przy starcie strony div o id="Container" nie ma żadnych styli w swoim tagu, a po kliknięciu u góry w link z treścią już ma 'style="display: block;"'. Innym elementom też chyba się nowe style pokazują. Nie wiem czy to ma wogóle jakiś związek (IMG:style_emoticons/default/tongue.gif) ale może pomoże.
Go to the top of the page
+Quote Post
edgar72
post
Post #16





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 27.08.2009
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Hej,
(IMG:style_emoticons/default/sad.gif)
Ja nie mam nadal pomysłów na to...

Ma ktoś jakiś pomysł?
A może jakoś zupełnie inaczej trzeba to napisać, - całość, z tą podmianą DIV...

Jak tak, to może macie jakies linki do rozwiązań? Mi się najlepiej uczy z takich "wzorców projektowych" (IMG:style_emoticons/default/smile.gif)

Chyba, że ktoś wpadnie, jak tu zmienić, żeby w końcu jakoś to zadziałało. Tyle dni już kombinujemy... :/
Go to the top of the page
+Quote Post
--edgar72--
post
Post #17





Goście







Cześć wszystkim,
Czy mogę liczyć jeszcze na jakieś wskazówki?
Go to the top of the page
+Quote Post
-Gość-
post
Post #18





Goście







(IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
edgar72
post
Post #19





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 27.08.2009
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Niestety jeszcze nie rozwikłałem tej chorej zagadki. Pliz o ew. pomoc. Jak nie uda się, to chyb aoleję ten temat i zrobię przeładowywanie klasyczne, bez żadnych jQuerowych podmian i ajaxowych funkcji...

Trochę zubożeje stronka, no ale co poradzić...
Pozdrawiam,
KK.
Go to the top of the page
+Quote Post
piotrooo89
post
Post #20


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




W swoim DOM'ie po załadowaniu AJAX'a nie masz jeszcze tego elementu a Ty już chcesz dla niego wykonywać jakieś akcje (robić z niego przewijany pasek), upewnij się przed załadowaniem że masz to w DOM'ie i dopiero wtedy ładuj pasek przewijania.

Możesz tak to zrobić:

Kod
$('#Scroller-1').live('click', function(){
                  scroller  = new jsScroller(document.getElementById("Scroller-1"), 800, 544);
                scrollbar = new jsScrollbar (document.getElementById("Scrollbar-Container"), scroller, false);  
                });
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 15:13