Вход

Просмотр полной версии : остановить действие функции


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
но движение почему-то не прекращается
Насколько я знаю, 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
Насколько я знаю, setTimeout вообще выполнится только раз. Т.ч. кого ты собрался останавливать по прошествии еще большего времени?
Может у него setTimeout вызывается еще и внутри MoveBg, там где some code, и может вызывается без i=, потому и не останавливается.

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

Alexancho
01.04.2013, 17:07
внутри MoveBg нет setTimeout

ksa
02.04.2013, 08:40
внутри MoveBg нет setTimeout
Тогда каким образом
движение почему-то не прекращается
?