webForumDet fria alternativet

Visa / Dölj

6 svar · 433 visningar · startad av garda

gardaMedlem sedan dec. 200139 inlägg
#1

Brukar använda en funktion som ungefär ser ut så här för att visa och dölja tex. en tabell.

function visaDolj(Namn)
{
obj=document.getElementById(Namn);
if (obj.style.display == 'inline')
{
obj.style.display = 'none';
}
else
{
obj.style.display = 'inline';
}
}

Men om jag har flera objekt och vill att när jag visar ett objekt döljs de övriga,
är det någon som har någon idé att på något enkelt sätt fixa det??

JojoxxMedlem sedan juni 20004 308 inlägg
#2
var current=false;
function visaDolj(Namn)
{
obj=document.getElementById(Namn);
if(current){ current.style.display='none'; current=obj; }
if (obj.style.display == 'inline')
{
obj.style.display = 'none';
}
else
{
obj.style.display = 'inline';
}
}
gardaMedlem sedan dec. 200139 inlägg
#3

Tack för ett snabbt svar, men...
det blir ingen skillnad. Om jag använder koden i en "plus-minus"
meny vill jag att de övriga fälls ihop när jag trycker på en ny...

Alltså är menyn utfälld och jag trycker på en annan ska alla ihop utom den jag trycker på, som ska ut...:-)

/garda

dectgapMedlem sedan sep. 20021 655 inlägg
#4

Då får du ange vilka element som ska döljas, t ex så här:

var current=false;

// Array som innehåller idn på elementen som ska påverkas
var elms = ["div1", "div2", "div3"];

function visaDolj(Namn)
{
	for(var i=0;i<elms.length;i++)
		document.getElementById(elms[i]).style.display = "none";

	obj=document.getElementById(Namn);
	obj.style.display = (obj.style.display=="inline") ? "none" : "inline";
}
gardaMedlem sedan dec. 200139 inlägg
#5

Det känns som något inte stämmer med div:arna...
Det står helt still i huvudet!

<html>
<head>
<title>TEST</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

\<script language="Javascript" type="text/javascript"\>
\<!--

	// Array som innehåller idn på elementen som ska påverkas
	var elms = \["div1", "div2", "div3"\];
	
	function visaDolj(Namn)
	{
    	for(var i=0;i\<elms.length;i++)
            document.getElementById(elms*).style.display = "none";

    	obj=document.getElementById(Namn);
		obj.style.display = (obj.style.display=="inline") ? "none" : "inline";
	} 

\--\>
\</script\>

\</head\>
\<body\>

	\<a href="#" onClick="visaDolj('div1');"\>ETT\</a\>
	\<br\>\<br\>
	\<span style="display:none;" id="div1"\>
		\<a target="main" href=#\>ETT.ETT\</a\>\<br\>
		\<a href=#\>ETT.TVÅ\</a\>\<br\>
		\<a href=#\>ETT.TRE\</a\>\<br\>\<br\>
	\</span\>
	\<a href="javascript:visaDolj('div2')"\>TVÅ\</a\>
	\<br\>\<br\>
	\<span style="display:none;" id="div2"\>
		\<a href=#\>TVÅ.ETT\</a\>\<br\>
		\<a href=#\>TVÅ.TVÅ\</a\>\<br\>
		\<a href=#\>TVÅ.TRE\</a\>\<br\>
	\</span\>

\</body\>

</html>*

gardaMedlem sedan dec. 200139 inlägg
#6

Nu ger jag snart upp, har slitit i mitt hår hela dagen....
Någon som har ett bra tips??

Jesper TMedlem sedan nov. 20017 144 inlägg
#7
var elms = ["div1", "div2"];

Du har ju ingen "div3".
Kom ihåg att ta bort mellanrummet mellan java och script. :)

132 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)