setTimeout med lokal variabel
Den følgende kode skulle gerne generere et felt, der automatisk talteopad fra 0.
ved at trykke på knappen 'hold' skulle man kunne fange værdien af
variablen 'n' gemme den (som 'm') og så efter 3 sek, få den skrevet i
'field2'-feltet.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://
www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
var num = 0
var m
function count()
{
document.getElementById("field").value = num;
num++
setTimeout("count()",1000);
}
function hold()
{
var m=n;
t = setTimeout("document.getElementById('field2').value = m;",3000);
}</script>
<title>Untitled Document</title>
</head>
<input type="text" id="field" /> <input type="button" value="start
count" onclick="count()" />
<input type="text" id="field2" /> <input type="button" value="hold"
onclick="hold()" />
<body>
</body>
</html>
Det virker ikke. Jeg er et sikker på at problemet er at den lokale
variabel m bliver slettet efter af funktionen løber ud (funktionen
løber videre efter at timeoutet er blevet startet - og når således at
afslutte)
er der nogen der har en ide om hvordan problemet kan løses?
det duer ikke at erklære en global variabel og så give dén den
aktuelle værdi. skal være sådan så hvis man trykker på hold to gange i
træk bliver der fanget to forskellige værdier og vist respektivt 3 sek
efter klikket.
--synes selv det er lidt af en udfordring håber at der er nogen der
kan hjælpe!
(er selvfølgelig ikke denne her kode jeg skal have til at virke.. er
bare et eksempel jeg har oprettet for at isolere problemet)