settimeout probleem

Status
Niet open voor verdere reacties.

carlo boy7

Gebruiker
Lid geworden
28 feb 2009
Berichten
156
Hallo, ik heb dit script geschreven in javascript. Ik zelf ben er niet goed in.

Code:
	function veranderinnerhtml(){
	  document.getElementById("tekst2").innerHTML ='Berekenen';
	}
	function fors()
	{
		for(var i=1; i<=100; i++)
		{
			
			document.getElementById("tekst2").innerHTML ="voltooien "+ i;
			
		}
	}
	function procent(){
		window.setTimeout("fors()",1000);

		
	}

	window.setTimeout('veranderinnerhtml()', 3000);
	window.setTimeout('procent()', 4000);
<p id="tekst2">Test</p>
Alles gaat goed behalven met dat voltooien, het is de bedoeling dat hij "voltooien" laat zien en dat hij dan naar 100 gaat tellen. Alleen doet hij dat niet hij staat al gelijk op 100 als ik het uit probeer

Help mij
 
Er zit geen delay in de fors() functie. Daardoor zullen ze zó snel uitgevoerd worden dat het helemaal niet opvalt. Wat je het beste kunt doen is de aanroepen uit de for halen en elke functie apart aanroepen met een setTimeout.

Bijv zoiets:

[js]
function goUp( max, current ) {
document.getElementById("tekst2").innerHTML ="voltooien "+ current;
if ( current < max ) {
setTimeout ( 'goUp( ' + max + ', ' + ( current + 1 ) + ')' , 100 );
}
}
[/js]

Dan moet je alleen de eerste goUp() nog aanroepen met het maximum en een current van 0.

Pas op: niet getest, geen garanties. Mijn JS is ook niet zo sterk :P
 
De setTimeout functie is er alleen maar om te wachten voordat een functie voor de eerste keer wordt uitgevoerd. Daarna doet de functie dan, roets, zo snel mogelijk wat opgedragen is. De 1 t/m 99 zijn inderdaad voorbij voordat je ze hebt kunnen zien.
Met vriendelijke groet,
CSShunter
 
Het is gelukt :)
Dit heb ik ervan gebakken:
[JS] function veranderinnerhtml(){
document.getElementById("tekst2").innerHTML ='Bedragen berekenen';
}

var i = 0;
function up()
{
var getal= Math.round(Math.random()*10);
i = i + getal;
if(i > 100)
{
document.getElementById("tekst2").innerHTML ="Klaar";
window.setTimeout(' window.location.href = "maak.php"',100);

}
else
{
document.getElementById("tekst2").innerHTML ="voltooien "+ i + "%";
}

}


window.setTimeout('veranderinnerhtml()', 3000);
window.setTimeout('window.setInterval("up()",100);', 4000);[/JS]
Hoezo oplichterij?
 
setTimeout() heeft als eerste parameter een functie, niet een string. Dus:[JS]window.setTimeout(' window.location.href = "maak.php"',100);
[/JS]-->[JS]window.setTimeout(function()
{
window.location.href = "maak.php";
}, 100);
[/JS]en[JS]window.setTimeout('veranderinnerhtml()', 3000);[/JS]-->[JS]window.setTimeout(veranderinnerhtml, 3000);
[/JS]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan