H henkz Medlem sedan apr. 2002 183 inlägg Frågan 16 apr. 2014 06:40 #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..
J Jojoxx Medlem sedan juni 2000 4 308 inlägg 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;
}
H henkz Medlem sedan apr. 2002 183 inlägg Tack, men något litet fel ligger det nog i koden.
Det kommer inte fram några bilder längre..
H henkz Medlem sedan apr. 2002 183 inlägg 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;
}
J Jojoxx Medlem sedan juni 2000 4 308 inlägg Yes, hade kastat in ett likamed-tecken för mycket. Skrev utan att testa :)