Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: js nie zmienia wartosci w css
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
matewka
Witam. Mam taki kod:
  1. function pozycja () {
  2. divek = document.getElementById('lista').style;
  3. divek.top = test("wys")/2-divek.height/2;
  4. divek.left = test("szer")/2-divek.width/2;
  5. }

'lista' to id pewnego DIVa.
Po wywołaniu funkcji wyskakuje błąd: "Wymagany jest obiekt". Kompilator informuje też, że błąd jest w wierszu 2, czyli:
  1. divek = document.getElementById('lista').style;

O co tu chodzi? Na innej stronie stosuję getElementById z million razy i wszystko działa.
kamil4u
Bo tak nie można...
divek = document.getElementById('lista');
i
divek.style.top = ......

Ew. możesz skorzystać z with(,ale nie polecam):
with(document.getElementById('lista').style){
top = ......
}
matewka
Już nieaktualne. Nie wiem co mi nie działało, ale kombinowałem cały dzień i zadziałało ;P
A tak można:
  1. divek = document.getElementById('lista');
  2. divek.style.top = 50;

Zawsze tak robię i zawsze działa.
kamil4u
No przecież pisałem - jak dasz tak to zadziała:
Kod
divek = document.getElementById('lista');
divek.style.top = 50;

jak dasz(to nie zadziała)
Kod
divek = document.getElementById('lista').style;
divek.top = 50;


Już nie mówiąc o tym, że i tak nie powinno zadziałać, bo nie masz jednostek. Powinno być 50+'px';

@down: Co do jednostki to działa bo przeglądarki "poprawiają" Twój kod. Jednostka w CSS musi być. Co do głównego problemu to rzeczywiście działa, jednak prawdopodobnie starsze przeglądarki mogą tego nie obsługiwać - może później poszukam, dlaczego dokładnie ten sposób nie jest zalecany.
matewka
Bez jednostek też działa. A tą moją wersję pierwotną też stosowałem w innych skryptach i działało.
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.