Counter in JavaScipt

angelozehr

Mitglied
HTML:
<form method="post" action="testtest.php" name="formular">
<input type="text" readonly="readonly" name="text" id="text" />
<input type="button" onclick="restart()" value="Neustart" />
</form>

<script type="text/javascript">
//<![CDATA[
function restart()  {
	i = 1 ;
	setTimeout('count("'+i+'")', 1000);
}
function count(i) {
	document.formular.text.value = i ;
	i++ ;
	setTimeout('count("'+i+'")',1000);
}
//]]>
</script>

ich hab hier so ein kleiner Experiment-Code erstellt
Ich will einfach, dass der Script jede Sekunde hochzählt und wenn ich auf den Button Restart klicke, dass es neu anfängt
aber das klappt nicht.. stattdessen entsteht bei jedem klick ein neuer Counter.. aber ich will natürlich nur einen..

was mache ich falsch?

danke schon jetzt
 
Hi,

definiere eine globale Variable, die als Timerhandle dient. Wird der Counter resettet, wird zunächst geprüft, ob bereits ein Timer läuft und bei Bedarf gestoppt.
Code:
var hTimer = null;

function restart()  {
	if(hTimer != null) window.clearTimeout(hTimer);

	i = 1 ;
	hTimer = setTimeout('count("'+i+'")', 1000);
}
function count(i) {
	document.formular.text.value = i ;
	i++ ;
	hTimer = setTimeout('count("'+i+'")',1000);
}
Ciao
Quaese
 
Zurück