Задержка в javascript

[Удален]
2208

есть функция

function ssnction() {

var t=1000;

setTimeout(fade, t); }

function fade() { .... }

Мне нужно:

в случае если во время задержки (выполнения функции ssnction())

была повторно вызвана ssnction() то

1.задержку прерываем

2.fade() не вызываем

3.Вызываем ssnction()

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

malls
На сайте с 08.08.2005
Offline
255
#1

while(время){ if(вызвано) }

[Удален]
#2

а по конкретнее

--не разбираюсь в javascript--

malls
На сайте с 08.08.2005
Offline
255
#3

При чем тут яваскрипт? Я Вам просто алгоритм привел как реализовать... А на счет самого яваскрипт - это к книжкам...

[Удален]
#4

Алгоритм я и сам написал выше

malls
На сайте с 08.08.2005
Offline
255
#5

А сорри! Не вкурил сразу вопрос.

А кто мешает ввести доп. переменную?

Т.е. например как-то так:

function ssnction() {

n={1 | 0};

var t=1000;

setTimeout(fade, t, n);

инвертировать(n)

}

function fade() { .... if(n=0){break;}}

[Удален]
#6

спасибо, дельная мысль

P
На сайте с 08.03.2007
Offline
250
#7

на самом деле можно просто вызвать clearTimeout() и всё, во только надо сохранить результат setTimeout(fade, t, n);

var handle = setTimeout(fade, t, n);

...

if( надо остановить) clearTimeout(handle);

[Удален]
#8

спасибо, помозгую

bergen добавил 03.07.2008 в 21:13

Pilat:
на самом деле можно просто вызвать clearTimeout() и всё, во только надо сохранить результат setTimeout(fade, t, n);

var handle = setTimeout(fade, t, n);
...
if( надо остановить) clearTimeout(handle);

Как определить что функцию надо остановить. Либо как определить что идёт задержка??

P
На сайте с 08.03.2007
Offline
250
#9

Наймите программиста - он и определит :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий