|
|
|
| У меня есть функция, которая запускается с помощью таймера
Эта функция выполняет какие-то действия, но по истечении 10с должна остановиться
var tim =10;
function time(){
if(tim!=0){
// действие 1
tim-=1;
}
else {
// действие 2
clearInterval(timer)
}
}
var timer = setInterval(time, 1000);
|
Но она не останавливается, действие 2 выполняется с заданным таймером
Я пробовал запихнуть остановку в другую функцию, и вызвать уже ее но не помогла.
Я создал выключатель ( div ), на онКлик которого повесил остановку таймера, а потом вызвал это событие (с помощью jQuery) - это сработало. Но решение это карявое, хочется сделать покрасивше.
Подскажите как это можно сделать? | |
|
|
|
|
|
|
|
для: jangot
(06.11.2009 в 12:54)
| | А действие 2 и должно выполняться с заданным таймером.
Если хотите отключить таймер перед выполнением действия 2, то так и пишите:
clearInterval(timer) //сначала
// действие 2 потом, после отключения
|
| |
|
|
|
|
|
|
|
для: АЯ
(06.11.2009 в 13:01)
| | Это понятно.
Вопрос не о выполнении действия 2, а о том что таймер не останавливается.
Действие 2 выполняется с повтором, а должно только один раз | |
|
|
|
|
|
|
|
для: jangot
(06.11.2009 в 13:03)
| | Это вам показалось.
Запустите:
<div id="dd"></div>
<script>
var tim = 10;
function time ()
{
if (tim)
{
document.getElementById ('dd').innerHTML += tim + '<br>'; //Действие 1
tim--;
}
else
{
clearInterval (timer);
document.getElementById ('dd').innerHTML += '<hr>'; //Действие 2
}
}
var timer = setInterval (time, 1000);
</script>
| Горизонтальная черта в конце будет всегда ОДНА. | |
|
|
|
|
|
|
|
для: АЯ
(06.11.2009 в 13:08)
| | Спасибо, разобрался.
У меня переменная была определена локально | |
|
|
|