Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmienne globalne - chyba tutaj tkwi problem
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
matewka
Witam wszystkich serdecznie.
Od jakiegoś czasu głowię się z problemem, który podejrzewam, że dotyczy zmiennych globalnych. Mam taki skrypt:
  1. var upjoint = new array(0,0,0,0,0,0,0);
  2. var downjoint = new array(0,0,0,0,0,0,0);
  3.  
  4. function zaznaczGodz(r,c) {
  5. c_int = parseInt(c);
  6. if(upjoint[c_int]==0) {
  7. $('#r-'+r+'-c-'+c).attr('bgcolor', '#f00');
  8. upjoint[c_int] = 1;
  9. }
  10. else {
  11. ...
  12. }
  13. }

Funkcja zaznaczGodz() jest wywoływana z atrybutu 'onclick' każdej z 70 komórek w pewnej tabeli. Skrypt po prostu nie działa (nie zmienia koloru). Podejrzewam, że problem tkwi gdzieś w zmiennej upjoint, bo próbowałem po kolei usuwać poszczególne elementy funkcji i, jeśli np. w warunku IF'a wpiszę samo 'c_int!=0' to funkcja działa. Co robić?
melkorm
java script:

1. Zamieść cały kod - a najlepiej go nam udostępnij online,
2. FireBug i jego konsola błędów,
3. Co chcesz uzyskać,
4. Patrz punkt 1.

matewka
Ad.1. Cały kod to tylko prosta tabelka 7x10 + JS, który zamieściłem powyżej. Ale proszę bardzo wink.gif LINK
Ad.2. Używam Chrome, który ma wbudowane takie coś, jak FireBug.
Ad.3. Tworzę tabelkę dla lekarzy przedstawiającą dni tygodnia (w kolumnach) i godziny (w wierszach). Chcę, żeby lekarze mogli sobie ustawiać godziny pracy za pomocą klikania w konkretną godzinę - od której do której chcą pracować. Potrzebuję do tego globalnych tablic, które będą miały ilość pól tyle, co "c" (cell), a wartość danego pola tyle, co "r" (row). Skrypt, który oglądasz jest bardzo uproszczony. Konkretny mam w pracy, ale tam będę dopiero jutro... Jednak nie ma to żadnego znaczenia, bo ten tutaj też nie działa.
Ad.4. Patrz Ad.1.
Kemsan
"$ is not defined [Wstrzymuj na tym błędzie] $('#r-'+r+'-c-'+c).attr('bgcolor', '#f00'); " Popraw przykład, bo ściąga jQuery z localhost'a
matewka
już mniejsza z tym. Doszedłem, o co chodziło. debuger pokazał mi, że nie mogę zdefiniować tablicy w ten sposób:
  1. var upjoint = new array(0,0,0,0,0,0,0);

Przetrzepałem gugla i znalazłem takie coś:
  1. var upjoint = [0,0,0,0,0,0,0];

Działa! smile.gif
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.