webForumDet fria alternativet

Försöker få till display = 'none', löst

JavaScript

3 svar · 222 visningar · startad av Viking

Medlem sedan maj 20003 652 inlägg
Frågan#1

Hej, ser någon vänlig människa något fel här? Får inget felmeddelande eller så, det bara inte funkar :)

Nedan är JavaScriptet jag använder:

function _show(objekt){
	if(document.getElementById(objekt).style.display == 'none'){
		document.getElementById(objekt).style.display = 'inline'
	} else {
		document.getElementById(objekt).style.display = 'none'
	}
}

function _hide(){
	document.getElementById(01).style.display = 'none'
	document.getElementById(02).style.display = 'none'
	document.getElementById(03).style.display = 'none'
	document.getElementById(04).style.display = 'none'
	document.getElementById(05).style.display = 'none'
}

Såhär ser det ut i HTML-koden:

<a href="#" onclick="_hide(); _show('01');">Trafikskolan</a>
<span id="01" style="display: none;">
	<p class="rubrik">TRAFIKSKOLAN</p>
</span>

Det jag vill åstadkomma är alltså att jag först gömmer alla spans som syns redan, och därefter ska den som ska synas ploppa upp :) Jag är rätt säker på att jag har gjort fel i _hide() eftersom _show() funkar bra om jag tar bort allting som har med den andra funktionen att göra.

R: Kom på att jag glömt en massa ' runt ID-numren i _hide() :e :e :e

Medlem sedan nov. 20017 144 inlägg
#2

Tror inte ett id´t kan börja med en siffra.

Medlem sedan sep. 20021 655 inlägg
#3

Även om du fick rätt på just det finns det lite annat att kommentera:

Ett id får inte börja på en siffra.
Ett inline-element (<span>) kan inte innehålla ett blocklevelelement (<p>).

Medlem sedan aug. 20039 340 inlägg
#4

Din kod verkar lite onödigt oorganiserad. Följande kod är nog precis vad du vill ha, fast enklare.

Javascript:

 
<script>
function _show(objektnummer){
	// Byt ut i<=6 mot rätt antal objekt
	for (i=1;i<=6;i++){
		if(i==objektnummer)
			document.getElementById("rub" + i).style.display = 'inline'
		else
			document.getElementById("rub" + i).style.display = 'none'
	}
}

function _hide(){
	/* Du behöver inte anropa denna funktion varje gång du använder _show,
	utan bara när du av någon anledning vill dölja alla textsnuttar! */
	_show(0);
}
</script>

HTML:

 
<a href="#" onclick="_show(1);">Trafikskolan</a>
<a href="#" onclick="_show(2);">2</a>
<a href="#" onclick="_show(3);">3</a>

<br /><br />
Observera att det står "rubx" i ID!
<br />
<span id="rub1" style="display: none;" class="rubrik">
	TRAFIKSKOLAN
</span>
<span id="rub2" style="display: none;" class="rubrik">
	2
</span>
<span id="rub3" style="display: none;" class="rubrik">
	3
</span>

Istället för att ändra trådens titel till "löst" bör du klicka på knappen acceptera som slutgiltigt svar som finns bredvid varje svar...

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