Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS][jQuery] Problem setTimeout
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
angel2953
mam sobie takie kodzik, który korzysta z jQuery 1.2.1:
  1. jQuery(document).ready(function() {
  2. var clock_fcj = function() {
  3. var _curDate = new Date();
  4. var _nextHour = _curDate.getHours() + 1;
  5. var _nowMinutes = 60 - _curDate.getMinutes();
  6. var _nowSeconds = 60 - _curDate.getSeconds();
  7.  
  8. _nowMinutes = ( _nowMinutes < 10 ) ? _nowMinutes = "0" + _nowMinutes : _nowMinutes;
  9. _nowSeconds = ( _nowSeconds < 10 ) ? _nowSeconds = "0" + _nowSeconds : _nowSeconds;
  10. jQuery("#clock").replaceWith( "reset apache'a " + _nowMinutes + ":" + _nowSeconds );
  11. setTimeout( "clock_fcj", 1000 );
  12. }
  13. clock_fcj();
  14. });

i on powinien wyświetlać odliczający "zegarek" w divie i częściowo to działa bo po załadowaniu strony pokazuje ilość minut:sekund ale po przejściu pierwszej pętli setTimeout w FireBug'u znajduje taki komunikat:
Cytat("FireBug")
clock_fcj is not defined
setTimeout( "clock_fcj", 1000 );

czy ktoś może mi powiedzieć co ja robię źle ?
nospor
definicja funkcji clock_fcj() powinna byc w header a nie w ready jquery. W ready jquery powinno byc tylko wywolanie.
angel2953
teraz mam tak:
  1. var clock_fcj = function() {
  2. var _curDate = new Date();
  3. var _nextHour = _curDate.getHours() + 1;
  4. var _nowMinutes = 60 - _curDate.getMinutes();
  5. var _nowSeconds = 60 - _curDate.getSeconds();
  6.  
  7. _nowMinutes = ( _nowMinutes < 10 ) ? _nowMinutes = "0" + _nowMinutes : _nowMinutes;
  8. _nowSeconds = ( _nowSeconds < 10 ) ? _nowSeconds = "0" + _nowSeconds : _nowSeconds;
  9. jQuery("#clock").replaceWith( "reset apache'a " + _nowMinutes + ":" + _nowSeconds );
  10. setTimeout( "clock_fcj", 1000 );
  11. }
  12. jQuery(document).ready(function() {
  13. clock_fcj();
  14. });

komunikat zniknął ale czas nie jest odliczany :/
nospor
nie: setTimeout( "clock_fcj", 1000 );
a: setTimeout( "clock_fcj()", 1000 );
angel2953
lipa nadal nic albo ja już nie widzę błędów. plik jest tutaj
nospor
wywal to wszystko z head do body co ci kazalem i powinno smigac winksmiley.jpg
gekon
@nospor: Nie trzeba nic wywalać smile.gif
@angel2953: Z tego co sie orientuję, to jQuery nie ma takiej metody jak replaceWith(), zamiast nie użyj metody text():
  1. jQuery("#clock").text( "reset apache'a " + _nowMinutes + ":" + _nowSeconds );
angel2953
Cytat(gekon @ 23.10.2007, 15:13:08 ) *
@nospor: Nie trzeba nic wywalać smile.gif
@angel2953: Z tego co sie orientuję, to jQuery nie ma takiej metody jak replaceWith(), zamiast nie użyj metody text():
  1. jQuery("#clock").text( "reset apache'a " + _nowMinutes + ":" + _nowSeconds );

text podziałało,dzięki :]

a metoda replaceWith istnieje ale teraz dokopałem sie do API i okazało się, że służy ona do zupełnie czegoś innego :/

dzięki zapomoc :]
gekon
O rzeczywiście - człowiek uczy się całe życie. Z replaceWith() też by się dało: replaceWith("<div id="clock">...</idv>");
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.