---
title: "en fråga om if else"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/114362-en-fråga-om-if-else"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "niklasblohm"
published: "2004-10-25T12:51:22.000Z"
updated: "2004-11-02T22:52:13.000Z"
replies: 6
views: 266
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/114362-en-fråga-om-if-else"
---

# en fråga om if else

## #1 — niklasblohm, 2004-10-25T12:51Z

hej hej. jag har en liten fråga om if else-satser i javascript. jag har en funktion som visar/gömmer ett lager men man måste klicka på länken som ska köra funktionen två gånger första gången för att det ska fungera. varför då? verkar som om skriptet måste köras en gång för att funktionen ska fungera men det tycker jag känns lite omständigt, borde väl finnas nåt sätt att komma runt det, eller? här är koden iaf:

function adminLayer(id)
{

var id = id + "alternativ";
var leftPos = event.clientX;
var topPos = event.clientY;
var bredd = '95';

if(document.getElementById(id).style.visibility == 'hidden')
{
	document.getElementById(id).style.left = leftPos - bredd;
	document.getElementById(id).style.top = topPos;
	document.getElementById(id).style.visibility = 'visible';
} else
	document.getElementById(id).style.visibility = 'hidden';

}

tacksam för svar!

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

## #2 — Peter S, 2004-10-25T13:37Z

Hejsan! Välkommen till wF!

Det jag har att anmärka på är att du försöker deklarera en variabel, id, i ett scope där det redan finns en sådan variabel. Sedan skulle du möjligtvis kunna optimera koden en aning.

```
...
id = id + "alternativ";

var elm = document.getElementById ? document.getElementById(id) : 0;
if (elm)
{
 if(elm.style.visibility == 'hidden')
 {
 elm.style.left = leftPos - bredd;
 elm.style.top = topPos;
 elm.style.visibility = 'visible';
 } else
 elm.style.visibility = 'hidden';
}
...
```

 :)

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

## #3 — niklasblohm, 2004-10-26T19:12Z

tack! men jag får det inte att fungera... vad gör raden:
var elm = document.getElementById ? document.getElementById(id) : 0; 
?

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

## #4 — Jesper T, 2004-10-26T19:25Z

Kollar om webbläsaren rullar med getElementById
Om den gör det: elm=document.getElementById(id)
annars: elm = 0

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

## #5 — Peter S, 2004-10-27T12:37Z

Jag hade en högerparentes för mycket i mitt förra inlägg. Testa nu.

 :)

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

## #6 — niklasblohm, 2004-11-02T22:29Z

nu har jag testat koden och utan extra högerparentes och det fungerar ju men det löser fortfarande ínte mitt problem att jag måste klicka två gånger första gången jag använder funktionen. jag förstår inte vad jag gör för fel...

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

## #7 — niklasblohm, 2004-11-02T22:52Z

jag löste det!

felet var att av någon anledning tilldelas lagret inbte rätt visibility-värde direkt trots att den är tillsagd att göra det så därför letade if-satsen efter visibility == 'hidden' när värdet i själva verket var tomt... 

if(elm.style.visibility == 'hidden' \|\| elm.style.visibility == '') jag la till det här i koden så fungerar det.

tack för hjälpen från alla hur som helst... tack tack

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/114362-en-fråga-om-if-else
