Autor | Zpráva | ||
---|---|---|---|
jan99 Profil * |
#1 · Zasláno: 19. 4. 2012, 21:12:18
Ahoj, pokud mam javascript a z toho javascriptu volam pres document.getElementById nejaky element tak to funguje jen kdyz se ten element nachazi nad tim javascriptem, tzn pokud ho soupnu az dole za javascript uz to nefunguje a firebug hlasi "element is null".
Jak to udelat aby to fungovalo ve vsech pripadech?? Diky |
||
Someone Profil |
#2 · Zasláno: 19. 4. 2012, 21:22:04
Nó.. akce můžeš zabalit do nějaké funkce:
function funkce() { var neco = document.getElementById('id'); } a tuto funkci volat přes body událost onload: <body onload="funkce()"> Nejsem tak zběhlý v JavaScriptu, tak mě prosím omluv pokud by to byla blbost. |
||
Sir Tom Profil |
#3 · Zasláno: 19. 4. 2012, 21:28:43
jan99:
Také ahoj, no protože prohlížeč vykreslí stránku po řádcích - odshora dolů. Pokud tedy nahoře ve zdrojáku bude script s tím document.getElementById("neco") tak v době, kdy prohlížeč dojde na tento řádek, tak žádný element s id = "neco" ještě nebyl vypsán (neexistuje = element is null). Proto je dobré nejdřív vykreslit všechny elementy a pak s nimi pracovat přes JS. Vhodné je řešení od Someone, ale to nemusí být vždy žádané. Já to dělám tak, že všechny změny, které proběhnou díky JS jsou ve funkcích v externím souboru. Vyjímečně pak až úplně na konci zdrojáku. |
||
Časová prodleva: 11 let
|
0