webForumDet fria alternativet

VIsa och dölja div

12 svar · 903 visningar · startad av peppar

pepparMedlem sedan dec. 2001873 inlägg
#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?

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

mv icaaq

fakenick!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..

Peter SMedlem sedan dec. 20025 483 inlägg
#4
<select onchange="switchThis(this.options[this.selectedIndex].value)">
    <option value="detalj_div">Detalj-div</option>
    ...
</select>
fakenick!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?

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

tack så mucket!

fungerade väldigt bra!

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

Peter SMedlem sedan dec. 20025 483 inlägg
#8

:f

HamatzuMedlem 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

@ndersMedlem sedan juni 200032 969 inlägg
#10
<body onload="här lägger du kallet till javascriptfunktionen som ska köras när sidan laddas klart">
HamatzuMedlem 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?

@ndersMedlem sedan juni 200032 969 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.

HamatzuMedlem sedan mars 2005232 inlägg
#13

Tackar @nders, fungerar utmärkt! :e

273 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
140 ms — hämta forumlista (db)
125 ms — hämta statistik (db)
131 ms — hämta tråd, inlägg och bilagor (db)