Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.04.2013, 15:08
Новичок на форуме
Отправить личное сообщение для Alexancho Посмотреть профиль Найти все сообщения от Alexancho
 
Регистрация: 01.04.2013
Сообщений: 2

остановить действие функции
Я использую функцию 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>
Ответить с цитированием
  #2 (permalink)  
Старый 01.04.2013, 15:51
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,227

Сообщение от Alexancho
но движение почему-то не прекращается
Насколько я знаю, setTimeout вообще выполнится только раз. Т.ч. кого ты собрался останавливать по прошествии еще большего времени?
Ответить с цитированием
  #3 (permalink)  
Старый 01.04.2013, 15:55
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,227

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!');
};
Ответить с цитированием
  #4 (permalink)  
Старый 01.04.2013, 16:08
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Сообщение от ksa
Насколько я знаю, setTimeout вообще выполнится только раз. Т.ч. кого ты собрался останавливать по прошествии еще большего времени?
Может у него setTimeout вызывается еще и внутри MoveBg, там где some code, и может вызывается без i=, потому и не останавливается.
Ответить с цитированием
  #5 (permalink)  
Старый 01.04.2013, 16:10
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,227

Сообщение от rgl
Может у него setTimeout вызывается еще и внутри MoveBg, там где some code, и может вызывается без i=, потому и не останавливается
Ну вот он и ответ...
Ответить с цитированием
  #6 (permalink)  
Старый 01.04.2013, 17:07
Новичок на форуме
Отправить личное сообщение для Alexancho Посмотреть профиль Найти все сообщения от Alexancho
 
Регистрация: 01.04.2013
Сообщений: 2

внутри MoveBg нет setTimeout
Ответить с цитированием
  #7 (permalink)  
Старый 02.04.2013, 08:40
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,227

Сообщение от Alexancho
внутри MoveBg нет setTimeout
Тогда каким образом
Сообщение от Alexancho
движение почему-то не прекращается
?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Остановить выполнение функции tsigel jQuery 3 19.12.2012 15:09
Остановить функцию внутри другой функции sliv Общие вопросы Javascript 5 07.10.2012 18:07
Установить имя конструктора Андрей Параничев Общие вопросы Javascript 8 17.11.2011 10:09
Как в браузерах реализуются функции DOM (например createElement) iamme Общие вопросы Javascript 7 02.09.2011 20:26
arguments вызвавшей функции mister_maxim Общие вопросы Javascript 4 12.10.2010 16:21