Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.11.2011, 07:10
Интересующийся
Отправить личное сообщение для oke11o Посмотреть профиль Найти все сообщения от oke11o
 
Регистрация: 02.09.2011
Сообщений: 22

Очередные проблемы с setInterval
Здравствуйте. Извините за банальный вопрос. Просто все делаю по инструкции и ничего не получается.
Есть плагин для jQuery - jCarousel. У нее есть функция initCallback, которая вызывается после инициализации объекта carousel. Но это предисловие. Вот эта функция:
function mycarousel_initCallback(carousel, state) {
		var i = 1;
		setInterval(test(carousel, i), 2000);
		i++;
	}
	function test(carousel, i){
		console.log('test-'+i);
		//carousel.scroll(i);
		return;
	}

Так если я пишу так - на консоль выводится только одна первая надпись "test-1".
Если я пишу так
setInterval('test(carousel, i)', 2000);

то пишет, что переменные не определения ("carousel is not defined"), но зато с требуемым интервалом. Как передать переменные в функцию для выполнения setInterval?
Ответить с цитированием
  #2 (permalink)  
Старый 22.11.2011, 07:43
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

может так заработает:
var inter  = setInterval(function() {},2000)

Последний раз редактировалось 9xakep, 22.11.2011 в 12:16.
Ответить с цитированием
  #3 (permalink)  
Старый 22.11.2011, 09:53
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

можно засунуть её в интевал сразу.
function mycarousel_initCallback(carousel, state) {
		var i = 1;
		setInterval(function(){
		       console.log('test-'+i);
		       //carousel.scroll(i);
		       return;
                }, 2000);
		i++;
	}
Ответить с цитированием
  #4 (permalink)  
Старый 22.11.2011, 10:40
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

myFn() - возвращает результат выполнения функции.
myFn - возвращает ссылку на функцию.
По этому ваша функция исполнялась один, ведь вы просто вызывали её и передавали в интервал возвращаемый параметр функции - undefined.
Конкретно в вашем случае, правильно будет выглядеть подход так -
setInterval(test, 2000, carousel, i);

Но пример выше будет правильнее.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #5 (permalink)  
Старый 22.11.2011, 11:19
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Nekromancer, разве в таком случае i будет увеличиваться со временем ?
Ответить с цитированием
  #6 (permalink)  
Старый 22.11.2011, 12:46
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

Ну да, не будет. Не туда смотрю, поспешил.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переменный в setinterval не видно вне него zeraid Общие вопросы Javascript 12 13.04.2011 10:29
setTimeout setInterval и др. mycoding Общие вопросы Javascript 6 28.10.2010 17:26
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37
Drug&Drop + всплывание события = проблемы =(( _NoName_ Events/DOM/Window 4 05.03.2009 17:47
Проблема в document.write при использовании setInterval() GOll Общие вопросы Javascript 21 06.10.2008 17:38