webForumDet fria alternativet

Problem med en expanderings funktion

JavaScriptur Javascript

1 svar · 380 visningar · startad av calson

calsonMedlem sedan dec. 2003487 inlägg
Frågan#1

Hej
Jag har en sida där man kan expandera en grej åt gången som fungerar utan problem.
Nu vill jag kunna expandera alla som jag har lite problem med.

I asp loopar jag ut flera poster och sparar det totala antalet poster i en variabel som jag sedan lägger i en <type="hidden"...> med namnet countCheck

En knapp skall utlösa funktionen som expanderar allt som i sin tur loopar den funktion som expanderar en åt gången, men det verkar inte fungera.

Knappen: " <input type=""button"" onClick="javascript:expandAll('show', document.getElementById('countCheck'));" id="expandAll" value="Expand all member reports">

Koden för att expandera alla

function expandAll(sort,max)
{

  for(i=1;i<max;i++;)
  {
      Show('c', i, i, sort)
  }

  for(i=1;i<max;i++;)
  {
      Show('wr', i, i, sort)
  }

  document.getElementById('expandAll').onClick="javascript:expandAll('hide')";
  document.getElementById('expandAll').value="Close all";

}

Koden för alla expandera singlar (Fungerar)

function Show(tI, what, what_s, sh)
{

    if(tI=="c") {
        if(sh=="show") {
	    bgc = "1";
	    document.getElementById("commentsId_"+what_s+"_SHC").innerHTML="<a href=\"javascript:Show('c', '"+what+"', '"+what_s+"', 'hide');\">Hide comments</a>";
	    document.getElementById("commentsId_"+what).style.height="100px";
	    document.getElementById("commentsId_"+what).style.visibility="visible";
	    document.getElementById("expId_"+what).style.backgroundColor = '#999000';
        }
        else if(sh=="hide") {
	    bgc = "0";
	    document.getElementById("commentsId_"+what_s+"_SHC").innerHTML="<a href=\"javascript:Show('c', '"+what+"', '"+what_s+"', 'show');\">Show comments</a>";
	    document.getElementById("commentsId_"+what).style.height="0px";
	    document.getElementById("commentsId_"+what).style.visibility="hidden";
	    if(bgwr=="0") {document.getElementById("expId_"+what).style.backgroundColor = '#FFFFFF';}
        }
    }
    else if(tI=="wr") {
        if(sh=="show") {
	    bgwr = "1";
	    document.getElementById("warId_"+what_s+"_SHC").innerHTML="<a href=\"javascript:Show('wr', '"+what+"', '"+what_s+"', 'hide');\">Hide war report</a>";
	    document.getElementById("warId_"+what).style.height="50px";

	    for(i=1; i>4; i++) {
                document.getElementById("warId_"+what+"_"+i+"_in").style.height="15px";
	    }

	    document.getElementById("warId_"+what).style.visibility="visible";
	    document.getElementById("warId_"+what+"_Head").style.visibility="visible";
	    document.getElementById("expId_"+what).style.backgroundColor = '#999000';
        }
        else if(sh=="hide") {
	    bgwr = "0";
 	    document.getElementById("warId_"+what_s+"_SHC").innerHTML="<a href=\"javascript:Show('wr', '"+what+"', '"+what_s+"', 'show');\">Show war report</a>";
	    document.getElementById("warId_"+what).style.height="0px";
	    document.getElementById("warId_"+what).style.visibility="hidden";
	    document.getElementById("warId_"+what+"_Head").style.visibility="hidden";
	    if(bgc=="0") {document.getElementById("expId_"+what).style.backgroundColor = '#FFFFFF';}
        }
    }
}

Hoppas nu kan sålla ut den relevanta koden annars får jag göra ett försök

Tack på förhand

emissionMedlem sedan dec. 19996 721 inlägg
#2

Börja med att säkra upp koden.

Inte bra

document.getElementById("commentsId_"+what).style.height="100px";
document.getElementById("commentsId_"+what).style.visibility="visible";

Bättre

var elem=document.getElementById("commentsId_"+what);
if (elem)
{
   elem.style.height="100px";
   elem.style.visibility="visible";
}
130 ms totalt · 3 externa anrop · v20260731065814-full.58439ac5
125 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)