Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   остановить действие функции (https://javascript.ru/forum/misc/36925-ostanovit-dejjstvie-funkcii.html)

Alexancho 01.04.2013 15:08

остановить действие функции
 
Я использую функцию MoveBg(), которая перемещает фоновое изображение. Я хочу остановить движение через несколько секунд.
Попробовал использовать setTimeout() и clearTimeout(), но движение почему-то не прекращается.
В чем проблема?

<script type="text/javascript" language="javascript">
 
 
function MoveBg()
{
some code
}
 
$(function() {
 
var i = setTimeout("MoveBg()" ,200);
setTimeout(function(){clearTimeout(i)},10000);
 
});
 
        </script>

ksa 01.04.2013 15:51

Цитата:

Сообщение от Alexancho
но движение почему-то не прекращается

Насколько я знаю, setTimeout вообще выполнится только раз. Т.ч. кого ты собрался останавливать по прошествии еще большего времени?

ksa 01.04.2013 15:55

Alexancho, вот пример - там все работает.

var id=setTimeout(test,1000);
clearTimeout(id,500);
function test (){
	alert('Test!');
};

А так сработает только раз

var id=setTimeout(test,1000);
// clearTimeout(id,500);
function test (){
	alert('Test!');
};

rgl 01.04.2013 16:08

Цитата:

Сообщение от ksa
Насколько я знаю, setTimeout вообще выполнится только раз. Т.ч. кого ты собрался останавливать по прошествии еще большего времени?

Может у него setTimeout вызывается еще и внутри MoveBg, там где some code, и может вызывается без i=, потому и не останавливается.

ksa 01.04.2013 16:10

Цитата:

Сообщение от rgl
Может у него setTimeout вызывается еще и внутри MoveBg, там где some code, и может вызывается без i=, потому и не останавливается

Ну вот он и ответ... :lol:

Alexancho 01.04.2013 17:07

внутри MoveBg нет setTimeout

ksa 02.04.2013 08:40

Цитата:

Сообщение от Alexancho
внутри MoveBg нет setTimeout

Тогда каким образом
Цитата:

Сообщение от Alexancho
движение почему-то не прекращается

?


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