Очередные проблемы с 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? |
может так заработает:
var inter = setInterval(function() {},2000) |
можно засунуть её в интевал сразу.
function mycarousel_initCallback(carousel, state) { var i = 1; setInterval(function(){ console.log('test-'+i); //carousel.scroll(i); return; }, 2000); i++; } |
myFn() - возвращает результат выполнения функции.
myFn - возвращает ссылку на функцию. По этому ваша функция исполнялась один, ведь вы просто вызывали её и передавали в интервал возвращаемый параметр функции - undefined. Конкретно в вашем случае, правильно будет выглядеть подход так - setInterval(test, 2000, carousel, i); Но пример выше будет правильнее. |
Nekromancer, разве в таком случае i будет увеличиваться со временем ?
|
Ну да, не будет. Не туда смотрю, поспешил.
|
Часовой пояс GMT +3, время: 05:07. |