Autor Zpráva
Joan
Profil
Zdravím,
našla jsem si na diskusi vlákno, které mi pripadá mému problému velmi podobné. Mně se akce taky stále vykonává jen na posledním místě a už jsem vyčerpala všechny svoje dosavadní nápady. Níže uvedenou část skriptu nedovedu donutit, aby se velké obrázky zobrazovaly postupně - podle toho, odkud beru náhledy - vždy vpravo vedle náhledů:

var obrazek = [];    //obrazky IMG, ktere se maji premenovat na zvetseniny  
var nahled = [];          
for (var k = 1; k < 4; k++)   //k=pocet bloku na strance, odkud beru nahledy
{ 
obrazek = document.getElementById("tady"+k);    //tady se mají objevovat zvetseniny
nahled = document.getElementById("blok"+ k).getElementsByTagName("a");    //z techto bloku beru nahledy
if(k < 4)   {
  switch(k)
        {
          case 1:  {nahled = document.getElementById("blok1").getElementsByTagName("a");
                   nahled.onclick = function()  {
                   document.getElementById("tady1").className = pozice1;
                                                      }  
                   break;  }
          case 2:  {nahled = document.getElementById("blok2").getElementsByTagName("a");
                   document.getElementById("tady2").className = "pozice2";
                   break;  }
          case 3:  {nahled = document.getElementById("blok3").getElementsByTagName("a");
                   document.getElementById("tady3").className = "pozice3";
                   break;  }
          default: alert("Velký obrázek bohužel\nnelze zobrazit");
        }
            }


V případě case 1 jsem se pokusila měnit třídu funkcí, chybu to nehází žádnou, leč skript na mé přání kašle. Case 2 i case 3 jsou také bez chybové hlášky, ale bohužel taky bez odezvy.
Ze stylů
<style type="text/css">
.uprav {display: block; position: absolute; margin-left: 300px; padding: 6px; background-color: #ffa; border: 2px solid green;}
.skryj {display: none;}
.pozice1 {margin-top: -300px;}
.pozice2 {margin-top: -200px;}
.pozice3 {margin-top: -100px;}
</style>  

funguje jen .uprav a .skryj, ale třídy pozice se nechytají a zvětšeniny se mi stále a pořád lepí k dolnímu okraji okna prohlížeče.
Na co jsem prosím zapomněla?
Joker
Profil
Joan:
getElementsByTagName vrací pole elementů, takže u toho asi nebude fungovat onclick.
Joan
Profil
Joker:
Aha, a jak jinak teda mohu uvnitř switche změnit třídu, aby fungovalo <style> v hlavičce?
EDIT: bude fungovat i v poli, jako druhou (a fungující) půlku skriptu používám toto:
for (var n = 0; n < nahled.length; n++)  //n=pocet nahledu v bloku
{
  //IE a Opera vkladaji ctverecek pro imaginarni obrazek
obrazek.className = "skryj";
nahled[n].onclick = function ()
{
obrazek.src = this.href;
obrazek.className = "uprav";
return false;
}
obrazek.onclick = function()   //zavreni velkeho obrazku
{
obrazek.className = "skryj";   
}
}

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: