Ole: 15 divs...sichtbar / unsichbar

nabend

ich bastel grad mal wieder und könnte ein wenig hilfe gebrauchen.

mittels eines scripts mache ich ein div sichtbar bzw. unsichtbar das script sieht wie folgt aus (aufmerksame forumsleser dürften es kennen ;-)):

<html>
<head>
<script language="JavaScript" type="Text/JavaScript">
i=1;
function Change1()
{
if(i%2)
{
i++;
if (document.layers) //Ns
 {window.document.EINS.visibility="hide";}

if(document.all) // IE
 { document.all.EINS.style.display="none";}
}

else
{i++;
if (document.layers) //Ns
 {window.document.EINS.visibility="show";}

if(document.all) // IE
 { document.all.EINS.style.display="inline";}
}

}
</script>
</head>
<body>

</form>
</body><form>
<a href="#" onClick="Change1()"><img src="1.jpg"></a>

<div ID="TEST" style="position:absolute; top:100px; left:20px;">
<a href="#" onClick="Change1()"><img src="1.jpg"></a>
</div>
<script language="JavaScript" type="Text/JavaScript">
if (document.layers) //Ns
{
window.document.EINS.visibility="show";
}

if(document.all) // IE
{ document.all.EINS.style.display="inline";
}
</script>
</html>

wenn ich nun ein zweites div ansprechen will ist das ja auch kein problem einfach für den head zusätzlich:

<script language="JavaScript" type="Text/JavaScript">
j=1;
function Change2()
{
if(j%2)
{
j++;
if (document.layers) //Ns
 {window.document.ZWEI.visibility="hide";}

if(document.all) // IE
 { document.all.ZWEI.style.display="none";}
}

else
{j++;
if (document.layers) //Ns
 {window.document.ZWEI.visibility="show";}

if(document.all) // IE
 { document.all.ZWEI.style.display="inline";}
}

}
</script>

und im body:

<form>
<a href="#" onClick="Change2()"><img src="2.jpg"></a>

<div ID="TEST" style="position:absolute; top:100px; left:20px;">
<a href="#" onClick="Change2()"><img src="2.jpg"></a>
</div>
<script language="JavaScript" type="Text/JavaScript">
if (document.layers) //Ns
{
window.document.ZWEI.visibility="show";
}

if(document.all) // IE 4
{ document.all.ZWEI.style.display="inline";
}
</script>

soweit ja auch kein problem, das krieg ich auch mit 13 weiteren ohne probleme hin. die sache ist nur, das wenn ich mehrere divs sichtbar mache alle übereinander liegen. mir wäre es allerdings lieber wenn sich das sichtbare div "schliesst" wenn ich ein neues div sichtbarmache.

hat irgendjemand eine idee die mir damit weiterhelfen könnte?

ein weiteres problem ist bei 15 divs die länge der source, gibt es eine möglichkeit das ganze evtl. etwas kompakter zu formulieren?

vielen dank im vorraus.
alles liebe
ole
(8-)>

  1. hi ole,

    Es ginge auch kürzer :) :

    function MM_findObj(n, d) { //v3.0
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
    }

    function MM_showHideLayers() { //v3.0
      var i,p,v,obj,args=MM_showHideLayers.arguments;
      for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
        if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
        obj.visibility=v; }
    }

    im Link etc. : onMouseOver="MM_showHideLayers('L1','','show')" onMouseOut="MM_showHideLayers('L1','','hide')"

    wobei "L1" die Id des Layers ist.
    Musst die div- Tags natürlich noch mit CSS positionieren...

    Gruss
    Martin

    1. hi Martin

      vielen dank :-)
      jetzt komm ich weiter *froi*

      alles liebe
      ole
      (8-)>