Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   setInterval, и замена функций (https://javascript.ru/forum/misc/4901-setinterval-i-zamena-funkcijj.html)

SunnyDay 28.08.2009 14:10

setInterval, и замена функций
 
Всем доброго времени суток.
Столкнулся с небольшой проблеммой:
к примеру в каком-то куске кода устанавливается интервал на вызов ф-ии

setInterval(func_some, 200);

далее в этом коде я пытаюсь по каким-либо причинам заменить функцию func_some на другую:

func_some = function() { };

но интервал продолжает работать с исходной функцией... Подскажите пожалуйста, можно какнибудь заменить ф-ю из интервала, или нет?

P.S. SetTimeout не то, ибо пишется скрипт-автовставка в чужие страницы.

Kolyaj 28.08.2009 14:24

Останавливать и запускать новый.

Цитата:

Сообщение от SunnyDay
P.S. SetTimeout не то, ибо пишется скрипт-автовставка в чужие страницы.

И как это связано?

tenshi 28.08.2009 14:44

передавать не саму функцию, а её делегата..

SunnyDay 28.08.2009 14:49

Kolyaj, эмм, если не секрет, как остановить его?
>И как это связано?
Некоторые своими скриптами блокируют рекламу.. SetTimeout итак работает

SunnyDay 28.08.2009 14:51

tenshi, setInterval - предположительно в чужом коде, а мне нужно его остановить.

JSprog 28.08.2009 14:52

Цитата:

Сообщение от SunnyDay
эмм, если не секрет, как остановить его?

clearInterval
Синтаксис
x=setInterval(func_some, 200);
clearInterval(x)
________________________________
Меня даже уже жалеют и + ставят xD

tenshi 28.08.2009 15:00

я и не предлагаю его трогать...

tenshi 28.08.2009 15:04

var wrapper= new FunctionWrapper( f1 )
setInterval( wrapper, 1000 )
wrapper.constructor( f2 )

JSprog 28.08.2009 15:51

Цитата:

Сообщение от tenshi
var wrapper= new FunctionWrapper( f1 )
setInterval( wrapper, 1000 )
wrapper.constructor( f2 )

И что изменеия работают в setInterval?

SunnyDay 28.08.2009 15:56

ребят, вы меня помоему не слышите)

setInterval в чужом стороннем коде и выглядит так

setInterval(func_some, 200);

а не так

x=setInterval(func_some, 200);

можно что-либо предпринять?=)


Часовой пояс GMT +3, время: 00:32.