Autor | Zpráva | ||
---|---|---|---|
Joan Profil |
#1 · Zasláno: 21. 9. 2010, 12:45:10
Nemůžu a nemůžu dát dohromady skript, který by mi zvětšoval náhledy obrázků vedle nich. Pro velkou fotogalerii to nebyl problém, obrázky byly hezky pohromadě a náhledy se procházely cyklem FOR.
Ale v nynějším problému potřebuji vnutit JavaScriptu pro každou zvětšenou fotku její vlastní umístění (aby se velká fotka zobrazovala vždy vedle náhledu, i kdyby mezi nimi bylo půl stránky textu) Zkusila jsem skupinově fungující skript přeupravit, ale hlášku "missing; before statement" na 14.řádku neumím opravit: <h2>Zvětšení více obrázků</h2> <div id="fotka0"><a href="berca.jpg"><img src="berca_th.jpg" width=90 alt="Kliknutím zvětšíte"></a></div> <div id="umisteni0"></div><br> <p>Tady bude velký odstavec textu...</p> <p>Tady bude velký odstavec textu...</p> <p>Tady bude velký odstavec textu...</p><br> <div id="fotka1"><a href="zlatka.jpg"><img src="zlatka_th.jpg" width=90 alt="Kliknutím zvětšíte"></a></div> <div id="umisteni1"></div> <script language="JavaScript" type="text/javascript"><!-- for (var n = 0; n<nahled.length; n++) { var kam[n] = document.getElementById("umisteni" +n); var snimek = document.createElement("img"); kam.appendChild(snimek); var nahled = document.getElementById("fotka" +n).getElementsByTagName("a"); nahled.onclick = function () { snimek.src = this.href; return false; } } snimek.onclick = function() { snimek.style.display = "none"; } //--> </script> Tady mám odkaz (s nefungujícím skriptem) pro představu. Budu vděčná za menší pomoc, visím na tom už několik dní... Mnohokrát děkuji! |
||
_es Profil |
#2 · Zasláno: 21. 9. 2010, 14:57:16
Joan:
Príkazom var sa definuje premenná, nie prvok poľa.
Definuj premennú, ako nové pole, pred cyklom: var kam = []; |
||
Joan Profil |
#3 · Zasláno: 21. 9. 2010, 15:12:36
_es:
Díky. Tak jsem přidala a mám: var kam = []; for (var n = 0; n<nahled.length; n++) { var kam[n] = document.getElementById("umisteni" +n); var snimek = document.createElement("img"); kam.appendChild(snimek); var nahled = document.getElementById("fotka" +n).getElementsByTagName("a"); nahled.onclick = function () { ...atd. ale stále se konzole nelíbí zvýrazněný řádek. Prý tam chybí středník ale o tom dost pochybuji. |
||
Chamurappi Profil |
#4 · Zasláno: 21. 9. 2010, 15:16:37
Reaguji na Joan:
Vyhoď z toho zvýrazněného řádku var , viz první _esova věta.
|
||
Joan Profil |
#5 · Zasláno: 21. 9. 2010, 15:24:46 · Upravil/a: Joan
Chamurappi:
Aha, rozumím. Takže var může deklarovat celé pole, ale ne už jeho prvek. Smazala jsem. Nyní mám zase "nahled is undefined". Když jsem řádky 4- 7 přesunula nahoru mezi "var kam = [];" a nad cyklus, pro změnu mám hlášku, že řádek číslo 6 není funkce. Docílím něčeho přehazováním řádků? |
||
Joan Profil |
#6 · Zasláno: 22. 9. 2010, 11:15:51
Přidala jsem na začátek skriptu ještě další prázdná pole, mám tam:
var kam = []; var nahled = []; var snimek = []; a konzola je konečně spokojená. Já už méně, prootže přestože jsem opravila všechny hlášené chyby, obrázky se chovají, jakoby u nich žádný skript ani nebyl :-( . Přidala jsem i vlastnosti k snimek.style... v domnění, že třeba pozicování může pomoct, ale kdepak. Po zkušebním vložení alertu dovnitř function se neukázalo nic, tj. vidím to tak, že k funkci se můj skript vůbec nedostane a nejhorší je, že netuším, kde hledat chybu, když údajně žádná není...... Prosím, prosím ještě o nápovědu, toto je to poslední důležité, co na svých stránkách potřebuji (= velmi chci) ještě rozběhat. Děkuji! |
||
Chamurappi Profil |
#7 · Zasláno: 22. 9. 2010, 11:19:30
Reaguji na Joan:
> var nahled = document.getElementById("fotka" +n).getElementsByTagName("a"); > nahled.onclick = function () Metoda getElementsByTagName vrací vždy kolekci elementů (tedy něco jako pole). Jestli chceš nastavovat onclick prvnímu odkazu z dané kolekce, tak ten je v nahled[0] .
|
||
Joan Profil |
#8 · Zasláno: 22. 9. 2010, 11:27:19 · Upravil/a: Joan
Chamurappi:
"Jestli chceš nastavovat onclick prvnímu odkazu z dané kolekce, tak ten je v nahled[0]" Díky za reakci! Toto je mi náhodou zcela jasné, proto mám taky cyklus FOR začínající 0 a před funkcí nahled[n].onclick = function() atd. //to "n" jsem v #3 ještě neměla, vím Ale zřejmě to nestačí, ještě něco musím změnit, aby skript chodil. EDIT: Přidávám odkaz na nechodící skript Další nápad: nepotřebuji na to náhodou pole polí? Tj. pole na fotky v každém DIVu, ze kterého tahám náhledy (bude tam jedna, ale taky třeba čtyři) a pole těchto DIVů? Jsem prosím na správné stopě? |
||
Časová prodleva: 14 let
|
0