Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] zasięg zmiennej
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
misiek172
Witam.

Dziwna rzecz mi się przytrafiła:

Kod
function stop(b, nr){
    if(go[nr] == true){   [b]// TU WIDZI ZMIENNA NR[/b]
    m[nr] = b; [b] // TU WIDZI ZMIENNA NR[/b]
        clearTimeout(t[nr]);
      foo = document.getElementById(B);
      foo.style.height = parseInt(foo.style.height)-5+'px';
      if(parseInt(foo.style.height) > 0){
              alert(nr) [b]// TU WIDZI ZMIENNA NR[/b]
        s = setTimeout("stop(m[nr])", 1); [b]//  TU JUZ NIE WIDZI ZMIENNEJ NR[/b]
      }else{
            foo.style.width = '180px';
      }
    }
}


Dlaczego tak jest?
nevt
Cytat
s = setTimeout("stop(m[nr])", 1); // TU JUZ NIE WIDZI ZMIENNEJ NR
...
Dlaczego tak jest?

bo to jest JS a nie PHP ... JS nie interpretuje zmiennych w ciągach ""
zamień na:
Kod
        s = setTimeout("stop(m["+nr+"])", 1);[b]
[/b]

i bedzie ok ...

a przy okazji - bądź uprzejmy i popraw 1 posta i dodaj znaczniki [code ] do kodu ....
misiek172
wlasnie nevt nie masz racji w tym wypadku, poradziłem sobie w ten sposob:

setTimeout(function(){ stop(m[nr]);}, 1)
nevt
a możesz mi wytłumaczyć w którym miejscu mojej wypowiedzi nie mam racji?
misiek172
bo gdy mam zmienna globalną to wtedy normalnie działa w : "stop(m[nr])"
Cezar708
Cytat(misiek172 @ 5.05.2008, 21:24:21 ) *
bo gdy mam zmienna globalną to wtedy normalnie działa w : "stop(m[nr])"




nevt dobrze Ci podpowiedział, wypróbuj jego sposób i zobaczysz że zadziała dokładnie jak Twój
nevt
Cytat
bo gdy mam zmienna globalną to wtedy normalnie działa w : "stop(m[nr])"

skoro jestes taki dobry w zmiennych globalnych, to po co zadajesz tu pytania ? marnujesz tylko nasz czas, przecież i tak wiesz lepiej ...
misiek172
nevt nie rozumiem twojej złości, powiedziałem to co uważam, forum służy do pomocy i wymiany poglądów, więc nie wkurzaj się na mnie tylko dla tego że się sprzeciwiłem z twoim zdaniem, może nie mam racji, ale tak wyszło z moich testów
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.