---
title: "Expanderande meny"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/125328-expanderande-meny"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Agneus"
published: "2005-03-29T11:01:46.000Z"
updated: "2005-04-08T06:32:06.000Z"
replies: 6
views: 446
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/125328-expanderande-meny"
---

# Expanderande meny

## #1 — Agneus, 2005-03-29T11:01Z

Hej

Har använt detta sätt för att göra expanderande menyer. Men nu har jag upptäckt att det inte funkar i Firefox. Någon som vet varför och hur man kan rätta till det?
Sidan med menyn ligger i ett frameset.

```
<html>

<head>
<meta http-equiv="Content-Language" content="sv">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title></title>
<base target="main">

<script>
	function menu(obj) {
		if(obj.style.display=='none') {
		obj.style.display=''
		}
		else obj.style.display='none'
	}
</script>

</head>
<body>

<div onclick="menu(menyProd)" style="cursor: hand">
      <a href="Produkten.htm">Produkten</a>
</div>

<div style="display: none" id="menyProd">
      <a href="A.htm">A</a><br>
      <a href="B.htm">B</a>
</div>

</body>
</html>
```

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

## #2 — @nders, 2005-04-03T06:32Z

På vilket sätt fungerar det inte i Firefox?
Jag tycker koden ser ut att funka likadant i IE som i FF.

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

## #3 — Jojoxx, 2005-04-03T09:50Z

Korrekt DOM-kod:

```
<div onclick="menu(document.getElementById('menyProd'))" style="cursor: hand">
```

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

## #4 — dectgap, 2005-04-03T09:52Z

Du skriver

```
onclick="menu(menyProd)"
```

d.v.s. du referar till ett element direkt via dess id.
Det är ingen allmäntfungerande metod, utan fungerar bara i IE.

Det korrekta är att använda sig av *document.getElementById()*.

Testa därför med:

```
<html>

<head>
<meta http-equiv="Content-Language" content="sv">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title></title>
<base target="main">

<script>
	function menu(objId) {
		var obj = document.getElementById(objId);
		if(obj.style.display=='none') {
		obj.style.display=''
		}
		else obj.style.display='none'
	}
</script>

</head>
<body>

<div onclick="menu('menyProd')" style="cursor: pointer">
      <a href="Produkten.htm">Produkten</a>
</div>

<div style="display: none" id="menyProd">
      <a href="A.htm">A</a><br>
      <a href="B.htm">B</a>
</div>

</body>
</html>
```

Du skickar alltså elementets id som en sträng, och använder sedan *document.getElementById()* i funktionen *menu()* för att utifrån id:t få fram ett element.

Jag ändrade även

```
style="cursor: hand"
```

till

```
style="cursor: pointer"
```

eftersom det är det "rätta" sättet att skriva för att få fram en hand (=länkpekare).

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

## #5 — Agneus, 2005-04-03T19:04Z

Tack för hjälpen dectgap, nu fungerar det som det ska.

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

## #6 — web00132, 2005-04-07T18:34Z

Men hörni, koden som dectgap skrev funkar inte i IE med SP2. Går det inte att fixa så en kod funkar i båda webbläsarna?

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

## #7 — dectgap, 2005-04-08T06:32Z

> **web00132 skrev:**
>
> Men hörni, koden som dectgap skrev funkar inte i IE med SP2. Går det inte att fixa så en kod funkar i båda webbläsarna?

Försöker du testa koden lokalt på din dator? I så fall fungerar det inte i.o.m. SP2.
Om du istället lägger upp det på nätet ska det gå bättre.

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/125328-expanderande-meny
