Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: getElementByID, zmienne niewidoczne w FF
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Asmox
Hej, mam dziwny problem z kodem js który mi pozycjonuje statycznego DIVa. Wygląda on tak:
Kod
<script type="text/javascript">
        window.onload=function() {
            var panel = document.getElementById("panel");
            var left = document.getElementById("left");
            panel.style.right = null;
            left.style.cssFloat="left";
            ustaw();
        }
        
        function ustaw() {
            /*questionmark.gif*/var left = document.getElementById("left");
            /*questionmark.gif*/var panel = document.getElementById("panel");
            var curr_width_left = left.clientWidth;
            panel.style.left = curr_width_left+"px";
        }
        window.onresize = ustaw;
    </script>


Dodałem znaki zapytania w komentarzach, ponieważ bez tych dwóch linijek wszystko działa poprawnie, nawet w głupim IE, natomiast Firefox wywala mi błąd, że "left is undefinied" (kiedy nie ma tych linijek które zaznaczyłem). Czemu tak się dzieje?
tolomei
Witaj.

Spróbuj przenieść funkcję ustaw() na samą górę.

Jeśli ostatnia linijka skryptu ma wywoływać funkcję to napisz ją w ten sposób:

Kod
window.onresize = ustaw();


Deklaracje funkcji anonimowych kończymy średnikiem.

Czyli:

Kod
<script type="text/javascript">
        function ustaw() {
            /**/var left = document.getElementById("left");
            /**/var panel = document.getElementById("panel");
            var curr_width_left = left.clientWidth;
            panel.style.left = curr_width_left+"px";
        }

        window.onload=function() {
            var panel = document.getElementById("panel");
            var left = document.getElementById("left");
            panel.style.right = null;
            left.style.cssFloat="left";
            ustaw();
        };
        
        window.onresize = ustaw();
</script>


Jeśli nadal nie działa - pomyśl o zasięgu zmiennych.
Może warto utworzyć zmienne globalne?
A może lepiej przekazywać parametry do funkcji?
Kombinuj.

Pozdrawiam.
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.