znalazłem i trochę zmodyfikowałem ten kod który odlicza do 0:
Code: Zaznacz cały
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Odliczanie</title>
</head>
<body>
<div id="status"></div>
</body>
</html>
Code: Zaznacz cały
function odliczaj(sekundy, elem){
var statusDiv = document.getElementById(elem);
statusDiv.innerHTML = "Czekaj: " + sekundy;
if(sekundy < 1){
clearTimeout(timer)
statusDiv.innerHTML = "Koniec odliczania.";
}
sekundy--;
var timer = setTimeout('odliczaj('+sekundy+', "'+elem+'")', 1000);
}
odliczaj(10, "status");
1. Dlaczego w tym przypadku ma znaczenie gdzie umieścić dekrementacje sekund, gdy dam ją po funkcji setTimeout to to nie działa, dlaczego?
2. W przypadku gdzie użyta jest funkcja setTimeout nie rozumiem dlaczego są tak pogmatwane te cudzysłowy, podwójne, pojedyńcze i te plusy.
3. Dlaczego w tym wypadku została użyta funkcja setTimeout a nie setInterval? Z tego co wiem to setTimeout wywołuje coś tylko raz a tutaj odlicza ona do 0.
Pozdrawiam