webForumDet fria alternativet

Hur kan jag ta reda på synligt lager

1 svar · 462 visningar · startad av haider

haiderMedlem sedan jan. 2003956 inlägg
#1

Hej där

Jag har följande script som fungerar halvautomatiskt. detta vill jag helautomatisera, frågan är hur.

Så ser det ut just nu:

// Denna varjabel anger vilket lager som är synligt just nu.
// Så lager nummer 0 är synligt. Om det är lager 1 eller 2 som är synligt, så anger jag det förstås.
// Denna variabel är dessutom en global variabel, som jag anger före
// och utanför nedanstående script
var visibleLayer= 0;
function changeLayer(n) {
document.getElementById('SubMenu_' + visibleLayer).style.display = 'none';
document.getElementById('SumMenu_' + n).style.display = 'block';

visibleLayer= n;

}

Nå, vad jag vill automatisera är variabeln "visibleLayer".
Istället för att hela tiden ange värdet 0,1,2,3 osv manuellt, vill jag att den kollar upp vilken av divvarna, med förnamnet 'SubMenu_' (siffrorna kommer efter underscore) som är synlig.

Man skulle kunna lägga in en dubbelchecki scriptet, så om fler än en div är synlig, så struntar scriptet att göra nåt (det ska ju nämligen inte finnas fler än en div som är synlig åt gången).
Men detta addon är bonus för mig.

Det enda jag behöver ha hjälp med, hur man med JS kan utläsa SubMenu_ div-serien och se vilken av dem som är synlig. Den synliges nummer blir då variabeln visibleLayer's värde.

Go jul!

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Skall det inte finnas fler än 1 synlig div åt gången räcker det ju med att jämföra det id som du skickar som argument till funktionen. Alla andra div'ar skall ju släckas, oavsett i vilket tillstånd de var tidigare.

function changeLayer(n) {
	var nl=document.getElementsByTagName("div");
	for(var j=0;j<nl.length;j++){
		var e=nl[j].id;
		if(e.match(/^SubMenu_/)){
			document.getElementById(e).style.display=((e+"")==("SubMenu_"+n))?'block':'none';
		}
	}
}

... annars kan du inne i loopen avläsa document.getElementById(e) och kolla vilka egenskaper du vill ha reda på.

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