webForumDet fria alternativet

Problem med togglefunktion i meny

5 svar · 384 visningar · startad av Mabe

MabeMedlem sedan apr. 20055 inlägg
#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>
FuelMedlem sedan okt. 20001 325 inlägg
#2

..........

nitro2k01Medlem sedan aug. 20037 630 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!

FuelMedlem sedan okt. 20001 325 inlägg
#4

.........

MabeMedlem sedan apr. 20055 inlägg
#5

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

/M

nitro2k01Medlem sedan aug. 20037 630 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!

Genererad på 389 ms · cache AV · v20260730165559-full.f96bc7eb