21. oktober 2011 - 00:28
Der er
4 kommentarer og 1 løsning
setInterval til max 5 gange
Hejsa. Jeg benytter mig af flg kode: function depthRes(ddiv,fps,endTime,maxD) { var resultat = ((new Date().getTime()/1000) - endTime) * fps; if (resultat > maxD) { resultat = maxD; } var finalRes = number_format(resultat,2); document.getElementById(ddiv).innerHTML=finalRes; } Som jeg kalder med: setInterval("depthRes('d<?=$s;?>',<?=$dd[$s];?>,<?=$et[$s];?>,<?=$mm[$s];?>)",2000); Jeg skal på en måde udbygge denne funktion så setinterval stopper efter at have kørt 5 gange. Kender i en god løsning til det ? Takker
Annonceindlæg fra HP
21. oktober 2011 - 00:45
#1
function depthRes(ddiv,fps,endTime,maxD,count) { var resultat = ((new Date().getTime()/1000) - endTime) * fps; if (resultat > maxD) { resultat = maxD; } var finalRes = number_format(resultat,2); document.getElementById(ddiv).innerHTML=finalRes; if(count < 5) callback(count+1); } function callback(count){ setTimeout("depthRes('d<?=$s;?>',<?=$dd[$s];?>,<?=$et[$s];?>,<?=$mm[$s];?>, "+count+")",2000); } callback(1);
21. oktober 2011 - 00:47
#2
setInterval() returnerer et ID som du skal gemme. Du kan annullere intervaller med clearInterval(int). Lav en global variabel som du tæller op hver gang funktionen bliver kaldt. Når tælleren overskrider grænsen annullerer du med clearInterval. Derfor skal du osse gemme ID'et globalt så du kan læse det i funktionen, så den kan annullere sig selv.
21. oktober 2011 - 10:47
#3
Jeg har forsøgt mig med flg: function depthResDo(ddiv,fps,endTime,maxD,count) { var resultat = ((new Date().getTime()/1000) - endTime) * fps; if (resultat > maxD) { resultat = maxD; } var finalRes = number_format(resultat,2); document.getElementById(ddiv).innerHTML=finalRes; if(count < 5) depthRes(ddiv,fps,endTime,maxD,count+1); } function depthRes(ddiv,fps,endTime,maxD,count){ setTimeout("depthResDo('"+ddiv+"','"+fps+"','"+endTime+"','"+maxD+"','"+count+"')",2000); } Men det ser ud til den kun kører een gang, og altså ikke de 5 som egentlig var meningen :(
21. oktober 2011 - 10:59
#4
for(i=1;i<6;i++) { setTimeout(func, 2000*i); } /J
19. november 2011 - 16:54
#5
Endte med en betalt løsning, men takker
Vi tilbyder markedets bedste kurser inden for webudvikling