---
title: "Trädmeny som stannar kvar när man klickat på en länk"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/148299-trädmeny-som-stannar-kvar-när-man-klickat-på-en-länk"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "web00132"
published: "2006-06-21T19:17:35.000Z"
updated: "2006-08-14T13:01:15.000Z"
replies: 8
views: 1705
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/148299-trädmeny-som-stannar-kvar-när-man-klickat-på-en-länk"
---

# Trädmeny som stannar kvar när man klickat på en länk

## #1 — web00132, 2006-06-21T19:17Z

Jag har sökt som en galning och testat en massa olika sätt att lösa det på men jag lyckas inte. Vad jag vill ha är en sån här meny:
<http://www.dhtmlcentral.com/script/script22_demo.html>
Men grejen är den att jag vill inte att menyn ska fällas ihop när man klickat på en länk. Jag hittade en enklare meny än den jag länkat till här men nu hittar jag inte tillbaks till den. Det är denna senare meny jag har byggt min kod på.
Javascriptet:

```
<script type="text/javascript">
	var lastmenu=false;
	function changeStyle(Id,Property,Value){
		if (document.all){
			eval('document.all[Id].style.'+Property+'="'+Value+'"');
		} else if (document.layers){
			eval('document.layers[Id].'+Property+'="'+Value+'"');
		} else if (document.getElementById){
			eval('document.getElementById(Id).style.'+Property+'="'+Value+'"');
		}
	}
	function clickMenu(mnu){
		if(mnu==lastmenu){
			changeStyle(mnu,'display','none'); lastmenu=false;
		} else {
			if(lastmenu){ changeStyle(lastmenu,'display','none'); }
			changeStyle(mnu,'display','inline');
			lastmenu=mnu;
		}
	}
</script>
```

 

HTML-koden:

```
<a href='#' onClick="clickMenu('sub_1');return false;">Länk 1</a><br />

<div style='display:none;' id='sub_1'>
	&nbsp;&nbsp;&nbsp;<a href='kategori.php?id=101'>Sublänk 1</a><br />
	&nbsp;&nbsp;&nbsp;<a href='kategori.php?id=102'>Sublänk 2</a><br />
	&nbsp;&nbsp;&nbsp;<a href='kategori.php?id=103'>Sublänk 3</a><br />
	&nbsp;&nbsp;&nbsp;<a href='kategori.php?id=104'>Sublänk 4</a><br />
</div>

<a href='#' onClick="clickMenu('sub_2');return false;">Länk 2</a><br />

<div style='display:inline;' id='sub_2'>
	&nbsp;&nbsp;&nbsp;<a href='kategori.php?id=203'>Sublänk 1</a><br />
	&nbsp;&nbsp;&nbsp;<a href='kategori.php?id=202'>Sublänk 2</a><br />
	&nbsp;&nbsp;&nbsp;<a href='kategori.php?id=201'>Sublänk 3</a><br />
	<img src='layout/arrow.jpg' alt='' />&nbsp;<a href='kategori.php?id=205'>Sublänk 4</a><br />
</div>
```

 Divven med 'display:none' och 'display:inline' genereras av PHP, den blir 'inline' ifall någon av sublänkarna är vald. I detta fall är ju sublänk 4 under länk 2 vald (den har fått en liten bild framför sig) och därför är divven under länk 2 satt till 'inline'.

Alltså egentligen funkar detta ganska bra, det enda är att när man klickar på den utfällda menyn (i detta fall på 'Länk 2') så händer inget vid första klicket, det blir först vid det andra klickat som menyn fälls ihop. Sjukt irriterande!  :x 
Vad kan jag göra åt detta? Tack på förhand!

Permalänk: https://www.webforum.nu/p/148299

## #2 — web00132, 2006-06-28T20:03Z

Vet ingen hur jag ska göra? Jag vet inte hur jag ska beskriva det bättre än jag gjort. Jag tycker det borde gå att 'lura' länken så den tror att den är klickad på eller liknande, men jag vet inte hur man skriver det i javascript.

Permalänk: https://www.webforum.nu/p/1835506

## #3 — J.N., 2006-06-29T09:37Z

HEJ!

Jag har inget svar, men testade med onmouseover istället, med samma resultat.
Det verkar alltså som att något inte förstår att länken är klickad.

Ett sätt att komma runt det, men inte snyggt, är att lägga ett tomt lager som man måste gå över med musen, och då sätter igång funktionen.
Jag testade med onmouseover på översta länken, och då fungerar andra länken meddetsamma.

Men, det är inget du kan räkna med kommer fungera alltid.

Permalänk: https://www.webforum.nu/p/1835615

## #4 — echoSwe, 2006-07-09T15:54Z

Som på min sida
<https://www.skolor.pedc.se/borgar/> ?

Permalänk: https://www.webforum.nu/p/1838062

## #5 — J.N., 2006-07-10T08:19Z

Troligen! :)

Eftersom jag inte var du har det, eller hur det ser ut utan, är det svårt att ha någon åsikt.

Kanske web00132 förstår bättre än mig!

Permalänk: https://www.webforum.nu/p/1838193

## #6 — Nate.A, 2006-07-10T09:21Z

Den här har jag använt mig av på ett par sidor nu, fungerar riktigt bra. (JS+CSS)
<http://juicystudio.com/article/ecmascriptmenu.php>
Javascriptet loopar igenom alla länkar i menyn och känner av vilken sida man är på och håller det menyalt. öppet.

Permalänk: https://www.webforum.nu/p/1838205

## #7 — web00132, 2006-07-10T10:24Z

Tack ska ni ha allihopa!   :bire 
echoSwe: Jag hittar ingen trädmeny på din sida?
Nate.A: Det verkar alldeles strålande, testar senare idag!  :)

Permalänk: https://www.webforum.nu/p/1838227

## #8 — web00132, 2006-08-14T10:22Z

Nate.A: Din meny funkade skitbra, tackar!   :bire

Red. Eller förresten, jag måste fråga en sak. Precis när sidan öppnas är hela menyn utfälld och när sidan laddat klart fälls den ihop så det blir liksom lite fladdrigt, har du löst det på nåt bra sätt?

Permalänk: https://www.webforum.nu/p/1852188

## #9 — Nate.A, 2006-08-14T13:01Z

Det är ett litet problem som uppstår i IE i FF så ser man inte den effekten.

En lösning, som inte är helt bra, är att man gömmer hela menyn med css genom lägga till

```
#minfinameny {display: none;}
```

och sedan lägger man till

```
objMenu.style.display = 'block';
```

 i slutet på funktionen rollup() i javascriptet.

Nackdelen med detta är att de webläsare som inte har javascript igång men använder css inte kommer att se menyn över huvud taget.

Permalänk: https://www.webforum.nu/p/1852231

---

Tråden på webben: https://www.webforum.nu/amne/javascript/148299-trädmeny-som-stannar-kvar-när-man-klickat-på-en-länk
