webForumDet fria alternativet
Logga in / Bli medlem

Skicka variabel

JavaScript

2 svar · 224 visningar · startad av mikkeX

Medlem sedan aug. 2002477 inlägg
Trådstart#1

HAr stirrat mig blind på ett problem och jag får det inte att funka - en funktion ska utföras när en viss tid har passerat, och den funktionen ska skicka en variabel till den andra:

<SCRIPT LANGUAGE="JavaScript">
var tidtagare; //sätter variabeln tidtagare
var tid = 1000; //tid mäts i milliskeunder - 1000 ms är lika med en sekund
ie = (document.all) ? true : false;
nav4 = (document.layers) ? true : false;
nav6 = (!document.all && document.getElementById) ? true : false;

function startaTidtagare(lager){
tidtagare = setTimeout("dolj(lager)",tid);
}
function dolj(lager){
if (nav4) {
document.layers\[lager\].visibility = 'hide';
}
if (ie) {
document.all\[lager\].style.visibility = 'hidden';
}
else if (nav6){
document.getElementById(lager).style.visibility = 'hidden';
}

}

</SCRIPT>

Så här ser det ut i Body:

<div id="menu" class="menu" style="width: 100px;height:30px;background-color:red;text-align:center;cursor:hand" onmouseout="startaTidtagare('lager2')">ett test</div>
<div id="lager2" class="lager2" style="position:absolute; top: 50px; left: 20px; background-color: black; color: white">text</div>

Varför fungerar det inte?

Medlem sedan juni 20004 308 inlägg
#2

En klassiker i repris :)

tidtagare = setTimeout("dolj(lager)",tid);

Det som sker här är att uttrycket "dolj(lager)" sparas för exekvering om tid millisekuner. Efter x antal millisekunder kommer då kodsnutten att exekvera;

dolj(lager)

... men då finns ju inte variabeln lager definierad. Den var ju bara ett argument till funktionen startaTidtagare() och finns inte längre kvar. Det du vill är alltså att ha värdet från variabeln lager, alltså;

tidtagare = setTimeout("dolj('"+lager+"')",tid);
Medlem sedan aug. 2002477 inlägg
#3

tack.

Nu hajjar jag.

259 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)