Непонятки с SetTimeout в цикле

  • Автор темы Ghost_Polymorph
  • Дата начала

Ghost_Polymorph

Guest
Непонятки с SetTimeout в цикле

Люди-человеки, у имеется такой код:
Нужно, чтобы каждую минуту в слой выводился новый текст.

--- Код ----
<script>
function sto() {
for (i=50; i>1; i--) {
setTimeout("document.all.Layer1.innerHTML = 'На прохождение теста Вам осталось' +i+' минут!'", 60000);
}
}
</script>
Для проверки, вызываю эту фукцию на событие onClick.

Но, по непонятным мне причинам, по нажатию кнопки, псле истечения времени, печатается текст:

--- Текст---
На прожождение теста вам осталось 1 минут! :)

Объясните плиз в где у меня ошибка (не в ДНК это точно :) ),
а еще лучше маленькое, компактненькое решение моей проблемы.

Заранее спасибо!
 

Paxan

Новичёк
Чтобы текст менялся раз в минуту, для этого надо вызывать некую функцию раз в минуту, которая бы изменяла слой. У тебя же получается 50 таймеров, которые меняют слой через одну минуту.
 

Ghost_Polymorph

Guest
Не совсем понял, что-то типа:
function textwrite () {
document.all.Layer1.innerHTML = "На прохождение теста Вам осталось "+i+" миннут!";
}
function sto() {
for (i=50; i>1; i--) {
setTimeout("textwrite()", 60000);
}
}

Хотя нет, так тоже не работает, всетаки у меня ошибка в ДНК или уже поздно и пора спать. :)
 

Paxan

Новичёк
что-то типа:
var i = 50;
function textwrite () {
if(i<=1) return;
document.all.Layer1.innerHTML = "На прохождение теста Вам осталось "+i+" миннут!";
i--;
sto();
}

function sto() {
setTimeout("textwrite()", 60000);
}
 

Ghost_Polymorph

Guest
Paxan
БАШОЕ ПАСИБО!

Просто, до безобразия. :)

Все ложусь спать.
 

SelenIT

IT-лунатик :)
или что-то типа

function sto(i) {
document.getElementById("Layer1").innerHTML = "На прохождение теста Вам осталось "+i+" минут!";
if (i>0) setTimeout("sto("+(i-1)+")", 60000);
}

.....

<body onload="sto(50);">
 
Сверху