Enklast genom att skicka med variabeln som ett argument till funktionen.
function myfunc(myVar){
myVar+=200;
alert("Nu har vi räknat lite med värdet som skickades till funktionen och resultatet är "+myVar);
}
var a = 123;
myfunc(a);
alert("Utanför funktionen (efter anropet) är variabeln a fortfarande "+a);
Så här har jag provat men utan resultat.
Jag förstår din tanke men i mitt fall fungerar det inte (jag gör säker fel)
var rakna = 0
function flytta(lager,rakna)
{
if (rakna < 21)
{
rakna++
document.all[lager].style.top = rakna
setTimeout("flytta('lager',rakna)
// här vill jag gör en timeout på X antal millisekunder typ setTimeout
// loopen fungerar om jag hårdkodar vilket layer som ska flyttas och inte skickar med någon parameter
}
}
function HideAll()
{
gom('Datormenu')
gom('tjanstmenu')
gom('kursmenu')
gom('infomenu')
}
function Showmenu(menu)
{
if (menu == 'Datormenu')
{
visa('Datormenu')
// Här skickar jag till functionen flytta
flytta('Datormenu','rakna')
och sist i functionen vill du sätta en timeout som kör funktionen igen efter 100 ms så skriver du;
setTimeout("myfunc(argA,argB);",100);
Detta gör att uttrycket "myfunc(argA,argB);" lagras och körs efter 100 ms. ... vad händer då, jo "myfunc(argA,argB)" körs ... men argA och argB är ju då odefinierade... eller hur? Det du egentligen vill göra är att sätta en timeout och sedan använda VÄRDET argA och argB, inte bara namnet på variablerna, således får du använda eval;