webForumDet fria alternativet

Problem med togglefunktion i meny

JavaScript

5 svar · 384 visningar · startad av Mabe

Medlem sedan apr. 20053 inlägg
Frågan#1

Har en javascritptbaserad meny, med dynamiska undermenyer som inte vill fungera som jag tänkt. Tanken är att ett klick på ett alternativ i huvudmenyn ska få olika undermenyer att dyka upp. Klickar man på samma val i huvudmenyn ska undermenyn försvinna. Klickar man på ett annat alternativ i menyn ska motsvarande undermeny dyka upp.

Problemet med den aktuella toggle-funktionen är att tre klick på samma alternativ i huvudmenyn får scriptet att spåra ur... undermenyn dyker inte upp.

Kika på http://bold.se/forum/boldmeny/

Finns det någon som har något förbättringsförslag för javascriptet?

<script type="text/javascript">
var p = 0; /* p = previously opened element. */

function toggle(id){
var e = document.getElementById(id);
e.style.display = 'block';
hide_mnu(id);
p = id;
}
function hide_mnu(id){
if(p != 0){
var e = document.getElementById(p);
e.style.display = 'none';
}
}
</script>
Medlem sedan okt. 20001 285 inlägg
#2

..........

Medlem sedan aug. 20039 340 inlägg
#3

Jag har blankt ingen aning om vad du egentligen gjorde för fel, men jag rekommenderar denna kod:

<script type="text/javascript">
function click_mnu(id){
	var cn = document.getElementById("subnav").childNodes;

	for (var i=0; i<cn.length; i++){
		if (cn[i].id == id){

			if (cn[i].style.display == 'block')
				cn[i].style.display = 'none';
			else
				cn[i].style.display = 'block';

		}else if(cn[i].nodeType==1){

				cn[i].style.display = 'none';
		}
	}

	return false;
}
</script>

... samt ...

<ul id="meny">
<li id="meny-startsida"><a href="#">Startsida</a></li>
<li id="meny-forum"><a href="#" onclick="return click_mnu('sub1');">Forum</a></li>
<li id="meny-tjanster"><a href="#" onclick="return click_mnu('sub2');">TjŠnster</a></li>
<li id="meny-installningar"><a href="#" onclick="return click_mnu('sub3');">InstŠllningar</a></li>
<li id="meny-partners"><a href="#" >Partners</a></li>
<li id="meny-ombold"><a href="#" onclick="return click_mnu('sub4');" >Om Bold</a></li>

</ul>

Välkommen till webForum för övrigt!

Medlem sedan okt. 20001 285 inlägg
#4

.........

Medlem sedan apr. 20053 inlägg
#5

Tackar, fungerar precis som jag ville från början. :)

/M

Medlem sedan aug. 20039 340 inlägg
#6

Mabe: Det var så lite så! Det finns en länk ovanför varje inlägg för att acceptera svaret som slutgiltigt. Det får du gärna göra om du är nöjd med svaret. Hoppas också att du kommer att stanna på wF!

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