Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.03.2010, 22:55
Аспирант
Отправить личное сообщение для libinstyle Посмотреть профиль Найти все сообщения от libinstyle
 
Регистрация: 23.03.2010
Сообщений: 54

Как завершить 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

Зарание спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 28.03.2010, 23:13
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

return и clearTimeout
Ответить с цитированием
  #3 (permalink)  
Старый 29.03.2010, 00:42
Аспирант
Отправить личное сообщение для libinstyle Посмотреть профиль Найти все сообщения от libinstyle
 
Регистрация: 23.03.2010
Сообщений: 54

Спосибо! return подошел в обоих случаях, не понятна специфика применения clearTimeout
Ответить с цитированием
  #4 (permalink)  
Старый 29.03.2010, 01:03
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

http://javascript.ru/clearTimeout
Ответить с цитированием
  #5 (permalink)  
Старый 29.03.2010, 01:17
Аспирант
Отправить личное сообщение для libinstyle Посмотреть профиль Найти все сообщения от libinstyle
 
Регистрация: 23.03.2010
Сообщений: 54

А как сделать return для какой нибудь другой функции? Например, если у меня тикает одна функция, тот же Тайм() приведенный выше, и я при нажатии на кнопку хочу остановить действие той функции?
Ответить с цитированием
  #6 (permalink)  
Старый 29.03.2010, 10:10
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

return только из тела функции делается.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #7 (permalink)  
Старый 29.03.2010, 11:08
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от libinstyle
А как сделать return для какой нибудь другой функции? Например, если у меня тикает одна функция, тот же Тайм() приведенный выше, и я при нажатии на кнопку хочу остановить действие той функции?
для данного случая, вам как-раз и понадобится clearTimeout
для этого надо объект получаемый от setTimeout хранить где-то в доступной для обработчика кнопки, области видимости.например вглобальной.
Кстати, а прервать выполнение текущей ф-ции(то есть которая прямо в данный момент выполняется) - нельзя, так как JS однопоточный асинхронный язык. для данного же вам варианта, это становится возможным, так как между выполнениями ф-ции time() проходит секунда. то есть обработчик кнопки запустится в промежутке между концом выполнения предыдущего раза time() и началом выполнения последующего раза time()
PS первым аргументов ssetTimeout лучше передавать ф-цию, а не строку
setTimeout(time,1000)

Последний раз редактировалось Gvozd, 29.03.2010 в 11:12.
Ответить с цитированием
  #8 (permalink)  
Старый 29.03.2010, 12:40
Аспирант
Отправить личное сообщение для libinstyle Посмотреть профиль Найти все сообщения от libinstyle
 
Регистрация: 23.03.2010
Сообщений: 54

Ясно. Спасибо разобрался. вместо строчки setTimeout("time()",1000)
пишем peremen=setTimeout("time()",1000)
а в функции которая завершает setTimeout() пишем clearTimeout(peremen)
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие div блока при первом визите на сайт Nushaba Общие вопросы Javascript 28 20.12.2013 21:24
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Как организовать RichEdit arma Элементы интерфейса 2 18.02.2010 14:57
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20
Очень простой как даже по мне вопрос по поводу setTimeout & setInterval Хранитель Света Общие вопросы Javascript 5 12.07.2008 20:34