---
title: "Måste klicka ett par gånger?!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/64271-måste-klicka-ett-par-gånger"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Jesper T"
published: "2003-01-09T02:30:22.000Z"
updated: "2003-01-09T06:52:43.000Z"
replies: 2
views: 219
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/64271-måste-klicka-ett-par-gånger"
---

# Måste klicka ett par gånger?!

## #1 — Jesper T, 2003-01-09T02:30Z

Jag har friserat till detta lilla visa/dölj-script så att det skall fungera med fler lager än ett. Problemet är att jag måste ibland klicka två gånger för att lagret skall visas.

```
<script language="Javascript">
var n=1
function hideShow(id){
n=n*-1; vis = (n==1)? "hidden" : "visible";
if(document.all){document.all("lager"+id+"").style.visibility=vis;}
if(document.getElementById){document.getElementById("lager"+id+"").style.visibility=vis;}
if(document.layers){document.layers["lager"+id+""].visibility=vis;}
}
</script>
</head>

<body>
<div id="lager1" style="visibility:hidden;">Testar1</div>
<div id="lager2" style="visibility:hidden;">Testar2</div>
<div id="lager3" style="visibility:hidden;">Testar3</div>
<a href="#" onClick="hideShow('1')">Test1</a>
<a href="#" onClick="hideShow('2')">Test2</a>
<a href="#" onClick="hideShow('3')">Test3</a>
</body>
```

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

## #2 — Jojoxx, 2003-01-09T06:43Z

Du kollar aldrig i ditt script vad lagret har för aktuell status. Du bara växlar mellan visible/hidden, oavsett vilket lager det är och vad det redan är. Sedan kan IE returnera true (beroende på version) både på document.all och document.getElementById eftersom den stödjer båda DOM'erna. Detta anhjälps enkelt med "else if" istället för if. Till sist använder Netscape 4 show/hide istället för visible/hidden. Lade även till en "return false" i onClick eftersom du inte behöver använda länken i \<a\> :)

```
<script language="Javascript">
function hideShow(id){
if(document.all){document.all("lager"+id+"").style.visibility=(document.all("lager"+id+"").style.visibility=="visible")?"hidden":"visible";}
else if(document.getElementById){document.getElementById("lager"+id+"").style.visibility=(document.getElementById("lager"+id+"").style.visibility=="visible")?"hidden":"visible";}
else if(document.layers){document.layers["lager"+id+""].visibility=(document.layers["lager"+id+""].visibility=="show")?"hide":"show";}
}
</script>

<div id="lager1" style="visibility:hidden;">Testar1</div>
<div id="lager2" style="visibility:hidden;">Testar2</div>
<div id="lager3" style="visibility:hidden;">Testar3</div>
<a href="#" onClick="hideShow('1');return false;">Test1</a>
<a href="#" onClick="hideShow('2');return false;">Test2</a>
<a href="#" onClick="hideShow('3');return false;">Test3</a>
```

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

## #3 — Jesper T, 2003-01-09T06:52Z

Tack, jag hittade ett du hade gjort som var bättre. :)

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/64271-måste-klicka-ett-par-gånger
