webForumDet fria alternativet

Öppna & stäng div

4 svar · 596 visningar · startad av henkz

henkzMedlem sedan apr. 2002183 inlägg
#1

Jag använder koden nedan för att öppna bilder och som det är nu öppnas bilderna men stänger inte de redan öppna när man trycker på ny bild..
Antal div/bilder varierar mellan 1-50.

Lösning:
Varje gång man klickar för visning av bild, ska andra öppna bilder stängas.

function switchThis(whatelement) {
var objLayer = document.getElementById(whatelement);
state = (objLayer.style.display == 'none') ? 'block' : 'none';
objLayer.style.display = state;
}

<img src="bild00.jpg" onClick="switchThis('galleria0');" width="47" height="49" />
<div id="galleria0" style="display: none;"><img src="bild00.jpg" border="1" onClick="switchThis('galleria0');" /></div>

<img src="bild01.jpg" onClick="switchThis('galleria1');" width="47" height="49" />
<div id="galleria1" style="display: none;"><img src="bild01.jpg" border="1" onClick="switchThis('galleria1');" /></div>

o.s.v..
JojoxxMedlem sedan juni 20004 308 inlägg
#2

Ungefär så här:

function switchThis(whatelement) {
	if(lastElement && lastElement != whatelement) {
		document.getElementById(lastElement).style.display = 'none';
	}
	lastElement = whatelement;
	var objLayer = document.getElementById(whatelement);
	state = (objLayer.style.display == 'none') ? 'block' : 'none';
	objLayer.style.display = state;
}
henkzMedlem sedan apr. 2002183 inlägg
#3

Tack, men något litet fel ligger det nog i koden.
Det kommer inte fram några bilder längre..

henkzMedlem sedan apr. 2002183 inlägg
#4

Sökte runt på sidan med fraser från din kod och fann denna kod som funkade.
Tack för hjälpen (y)

function switchThis(whatelement) {
	var objLayer = document.getElementById(whatelement);
	state = (objLayer.style.display == 'none') ? 'block' : 'none';
	if (elm != "" && document.getElementById(elm)){
		document.getElementById(elm).style.display = "none";
	}
	objLayer.style.display = state;
	elm = whatelement;
}
JojoxxMedlem sedan juni 20004 308 inlägg
#5

Yes, hade kastat in ett likamed-tecken för mycket. Skrev utan att testa :)

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