Как завершить Settimeout() ?
Здравствуйте! На самом деле вопроса два, первый такой
Есть скрипт, таймер обратного отсчета sekundi=00; minuti=30; function time() { if (sekundi==00) {sekundi=60; minuti--; } sekundi--; if (sekundi<10) {seconds='0'+sekundi} else {seconds=sekundi} document.getElementById('vrema').innerHTML=minuti+":"+seconds; if (minuti==0) {} setTimeout("time()",1000) } там внутри я не закончил условие, если минуты равны нулю, то.... Надо чтоб таймер остановился, и вызвалась другая функция, насчет последнего это ясно, но как выйти из функции time() Второй вопрос, в принципе сродни первому. У меня есть функция function { //она выполняет: 1... 2... 3.... } как мне после 2.. прекратить выполнение функции что типа exit(); в PHP Зарание спасибо! |
return и clearTimeout
|
Спосибо! return подошел в обоих случаях, не понятна специфика применения clearTimeout
|
|
А как сделать return для какой нибудь другой функции? Например, если у меня тикает одна функция, тот же Тайм() приведенный выше, и я при нажатии на кнопку хочу остановить действие той функции?
|
return только из тела функции делается.
|
Цитата:
для этого надо объект получаемый от setTimeout хранить где-то в доступной для обработчика кнопки, области видимости.например вглобальной. Кстати, а прервать выполнение текущей ф-ции(то есть которая прямо в данный момент выполняется) - нельзя, так как JS однопоточный асинхронный язык. для данного же вам варианта, это становится возможным, так как между выполнениями ф-ции time() проходит секунда. то есть обработчик кнопки запустится в промежутке между концом выполнения предыдущего раза time() и началом выполнения последующего раза time() PS первым аргументов ssetTimeout лучше передавать ф-цию, а не строку setTimeout(time,1000) |
Ясно. Спасибо разобрался. вместо строчки setTimeout("time()",1000)
пишем peremen=setTimeout("time()",1000) а в функции которая завершает setTimeout() пишем clearTimeout(peremen) |
Часовой пояс GMT +3, время: 09:45. |