webForumDet fria alternativet

VIsa och dölja div

JavaScript

12 svar · 903 visningar · startad av peppar

Medlem sedan dec. 2001873 inlägg
Frågan#1

Har en funktion som ser ut så här:

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

}

Som jag anropar t.ex såhär:

<div id="produkt" onClick="switchThis('detalj_div')">
	Klicka på mig:
</div>
<div id="detalj_div">
	detaljer ...
</div>

Men problemet är att per default så visas "detalj_div" diven fast hur vänder jag på det så att den är dold per default?

Medlem sedan okt. 20005 273 inlägg
#2
<div id="detalj_div" style="display: none;">
	detaljer ...
</div>

mv icaaq

Medlem sedan juli 2002202 inlägg
#3

okej! de där ser bra ut.. men jag vill ha det i en <select>
så att jag kan välja vilken div som skall vara synlig..

hur grejar jag det? testat lite olika med onchange
och funktioner men jag e inte så grym så har inte lyckats..

Medlem sedan dec. 20025 483 inlägg
#4
<select onchange="switchThis(this.options[this.selectedIndex].value)">
    <option value="detalj_div">Detalj-div</option>
    ...
</select>
Medlem sedan juli 2002202 inlägg
#5

mmh! det fungerade ju bra!

men inte riktigt som jag velat.. :P

jag vill ju såklart att när man väljer
ett nytt val i select så skall det förra
layeret man aktiverat med hjälp av
select försvinna!

hur gör man detta på enklaste sätt?

Medlem sedan dec. 20025 483 inlägg
#6
var elm = "";

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;
}
Medlem sedan juli 2002202 inlägg
#7

tack så mucket!

fungerade väldigt bra!

du kan få en puss på kinden om så önskas! ;)

Medlem sedan dec. 20025 483 inlägg
#8

:f

Medlem sedan mars 2005232 inlägg
#9

Tar upp denna tråd lite då jag behöver hjälp med det som står.

Har fått det att fungera men när jag har det lagret som ska visas som standard i selecten så visas inte den diven som ska visas. Utan jag måste välja något annat i selecten och när jag sedan väljer det som ska visas så visas det då.

Alltså antar jag att jag måste ha en funktion eller liknande som kör koden bara när man laddar sidan. Jag är inte så haj på javascrip så lite hjälp uppskattas! :bire

Medlem sedan juni 200032 967 inlägg
#10
<body onload="här lägger du kallet till javascriptfunktionen som ska köras när sidan laddas klart">
Medlem sedan mars 2005232 inlägg
#11

Jag försökte med det men det fungerar inte, tyvärr. Vet inte vad man skulle kunna göra istället. Antar att själva javascript-funktionen måste vara på select-elementet?

Medlem sedan juni 200032 967 inlägg
#12
<body onload="switchThis(document.getElementById('id_på_din_select').options[document.getElementById('id_på_din_select').selectedIndex].value)">

Edit: det ska inte vara något mellanslag mitt i options, det är forumet som bryter för att raden är för lång.

Medlem sedan mars 2005232 inlägg
#13

Tackar @nders, fungerar utmärkt! :e

257 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)