webForumDet fria alternativet

Undermenyerna försvinner.

JavaScript

9 svar · 268 visningar · startad av diondra

Medlem sedan feb. 200461 inlägg
Frågan#1

Är det någon som vet vad det är för fel på det här scriptet? Får det inte att funka alls, alla meny överskrifter förutom den första försvinner när man klickar på länkarna. Bifogar en fil som kanske kan hjälpa till.

<html>
<head>
<title>Switch Menu</title>
<style type="text/css">
.menuOut {cursor:crosshair; margin:2px; background-color:#ffffff; color:#255EFF; width:140px; border:no; padding:0px; text-align:left; font-weight:normal; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;}
.menuOver {cursor:crosshair; margin:2px; background-color:#ffffff; color:#C3B2F4; width:140px; border:no; padding:0px; text-align:left; font-weight:normal; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;}
.submenu {width:170px; padding-left:14px; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;}
.submenu a {color:#255EFF; text-decoration:none; font-weight:normal;}
.submenu a:hover {color:#C3B2F4; text-decoration:none; font-weight:normal; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;}
.style1 {font: 10px verdana, arial, helvetica, sans-serif; font-weight: normal; text-align: left; color: #CCCCCC; margin: 5px 0px 5px 0px; border-bottom: 1px solid #f7f7f7; padding: 1px; }
</style>
<script type="text/javascript">
/*  
Script made by Martial Boissonneault © 2001-2003 [url]http://getElementById.com/[/url]
This script may be used and changed freely as long as this msg is intact
Visit [url]http://getElementById.com/[/url] for more free scripts and tutorials.
*/
function SwitchMenu(obj){
	if(document.getElementById){
	var el = document.getElementById(obj);
	var ar = document.getElementById("cont").getElementsByTagName("DIV");
		if(el.style.display == "none"){
			for (var i=0; i<ar.length; i++){
				ar[i].style.display = "none";
			}
			el.style.display = "block";
		}else{
			el.style.display = "none";
		}
	}
}
function ChangeClass(menu, newClass) { 
	 if (document.getElementById) { 
	 	document.getElementById(menu).className = newClass;
	 } 
} 
document.onselectstart = new Function("return false");
</script>
</head>
<body>
<div class="style1">navigation<br></div>
<div id="cont">
	<p id="menu1" class="menuOut" onclick="SwitchMenu('sub1')" onmouseover="ChangeClass('menu1','menuOver')" onmouseout="ChangeClass('menu1','menuOut')">+ info/faq</p>
	<div class="submenu" id="sub1" style="display:none;">
		<a href="faq.html" target="main">+ faq</a><br/>
		<a href="info.html" target="main">+ about me</a>
	</div>
<div class="style1">build</div>
	<p id="menu2" class="menuOut" onclick="SwitchMenu('sub2')" onmouseover="ChangeClass('menu2','menuOver')" onmouseout="ChangeClass('menu2','menuOut')">+ walls</p> 
	<div class="submenu" id="sub2" style="display:none;">
		<a href="wi1.html" target="main">+ page 1</a>
	</div>

	<p id="menu3" class="menuOut" onclick="SwitchMenu('sub3')" onmouseover="ChangeClass('menu3','menuOver')" onmouseout="ChangeClass('menu3','menuOut')">+ floors</p>
	<div class="submenu" id="sub3" style="display:none;">
		<a href="fl1.html" target="main">+ page 1</a>
	</div>
</div>

</body>
</html>
Medlem sedan juni 20004 308 inlägg
#2

Vill du att menyerna skall fortsätta att vara "öppna" när du väljer en annan? Isf:

<script type="text/javascript">
/*  
Script made by Martial Boissonneault © 2001-2003 [url]http://getElementById.com/[/url]
This script may be used and changed freely as long as this msg is intact
Visit [url]http://getElementById.com/[/url] for more free scripts and tutorials.
*/
function SwitchMenu(obj){
	if(document.getElementById){
	var el = document.getElementById(obj);
	el.style.display=(el.style.display == "none")?"block":"none";
	}
}
function ChangeClass(menu, newClass) { 
	 if (document.getElementById) { 
	 	document.getElementById(menu).className = newClass;
	 } 
} 
document.onselectstart = new Function("return false");
</script>
Medlem sedan feb. 200461 inlägg
#3

Mja, nu försvinner inte de gråa menyerna iaf, men istället öppnas en och samma länk vilken av de javascript menyerna man än klickar på, kolla här: http://w1.183.telia.com/~u18323884/menyexempel.html

Prova att klicka på info/faq, det funkar, men inte att klicka på walls,floors, sets eller single objects för då öppnas info/faq igen.

nån som vet vad felet är?

Medlem sedan juni 20004 308 inlägg
#4

Du får inte ha flera element (läs <taggar>) med samma id, ex id="menu2". Endast 1 element får heta "menu2" eftersom id't måste vara unikt.

Medlem sedan feb. 200461 inlägg
#5

ah, det var ju så enkelt :)

men jag vill fortfarande att en javascript meny ska stängas när en annan av den sorten öppnas... går det oxå? :)

Medlem sedan juni 20004 308 inlägg
#6

Använder du orginal-scriptet men korrigerar id'na så borde det fungera.

Medlem sedan feb. 200461 inlägg
#7

korrigera id'na? vad, hur vilka? är inte så bra på javascript nämligen.

Medlem sedan juni 20004 308 inlägg
#8

Det som jag skrev om i förra tråden :) Alltså se till att inte flera <taggar> har samma id.

Medlem sedan feb. 200461 inlägg
#9

men det finns ju bara en menu1, menu2 osv?

Medlem sedan juni 20004 308 inlägg
#10

I exemplet http://w1.183.telia.com/~u18323884/menyexempel.html har du 5 st id="menu2"

369 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
235 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
234 ms — ändringar (db)