[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: setTimeout в цикле
dron4ik
for (var i=0; i<10; i++)
{
setTimeout('next()', 10000);
}


я слегка запутался, то что я привел ждет 10000 мс а потом все 10 раз одновременно выполняет...
А как сделать чтобы через 10000 мс?
Такой же результат (или никакого) дают все примеры с гугла которые успел проверить(

_____________
Ex3m.com.ua — Активный образ жизни
kaww
http://javascript.ru/setInterval
dron4ik
kawwСпасибо)


_____________
Ex3m.com.ua — Активный образ жизни
dron4ik
какая то лажа, под хромом только раз срабатывает(((

_____________
Ex3m.com.ua — Активный образ жизни
kaww
Вот ровно 10 раз и в хроме тоже:
var interval,intervalC = 0;
function next() {

if (intervalC == 9) {

clearInterval(interval);
}
++intervalC;
console.log(intervalC);
}
interval = setInterval(next, 1000);


А как делаете вы? поделитесь с нами
dron4ik
var speed = 1000;
var i = 0;
var m = $('.inside img').length - 1;
var start = 0;
function next(){
if(i < m){
i++;
$('.next').trigger('click');//alert('sd');
}else{
i = 0;
$('.path0 a').trigger('click');
}
}


var intervalID;
$(".show").click(function(){
if(start == 0){start = 1; intervalID = setInterval(function(){next()}, speed);}
else{start = 0;clearInterval(intervalID)}
}
);


Такая штука, при первом запуске срабатывает только раз, а с второго нормально) Не могу понять причину)

_____________
Ex3m.com.ua — Активный образ жизни
kaww
Из приведенного куска не очень-то понятно, но однозначно выявит проблему такой код:
var speed = 1000;
var i = 0;
var m = $('.inside img').length - 1;
var start = 0;
function next(){
console.log('next');
if(i < m){
i++;
$('.next').trigger('click');//alert('sd');
}else{
i = 0;
$('.path0 a').trigger('click');
}
}


var intervalID;
$(".show").click(function(){
if(start == 0){start = 1; intervalID = setInterval(function(){next()}, speed);}
else{start = 0;
console.log('интервал очищен');
clearInterval(intervalID)}
}
);
sergeiss
Еще можно просто вызывать рекурсивно setTimeout вместо использования интервала. Преимущество в том, что блоки кода гарантированно будут выполнены друг за другом. Хотя при этом не будет совсем уж четких интервалов.
При использовании setInterval необходимо гарантировать (в большинстве задач), чтобы блоки кода не пересекались по времени, т.е. чтобы время выполнения кода не было больше интервала. Либо - делать защиту какую-то.

PS. Типа такого:
function next( i, t )
{
if( i == 0 ){
return;
}
i--;
// что-то делаем

setTimeout( function() { next( i, t ) }, t );
}

// вызов:
next(10, 1000);


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
dron4ik
Это и есть весь мой код, за основу я использую jQuery слайдер без авто прокрутки...

И пытаюсь прикрутить слайдшоу)

Я не знаю как это может быть связано, но пока фаер баг открыт то все ок)))

_____________
Ex3m.com.ua — Активный образ жизни
kaww
dron4ik, хм, тогда зачем все эти костыли с trigger()? наверняка у слайдера есть апи
dron4ik
kaww
Это моя первая попытка самостоятельно расширить jQuery плагин, понимаю что костыли, но разбор мне сложней))) По сути аналог такого плагина я делал на чистом JS когда начинал его учить ( без слайдшоу ) )))


sergeiss
А браузер это не подвесит?
Я планирую зацикливать его сутками)))

на хроме при первом запуске отрабатывает только раз, с перезапуска уже норм)))

_____________
Ex3m.com.ua — Активный образ жизни
sergeiss
Цитата (dron4ik @ 25.12.2013 - 18:24)
А браузер это не подвесит?
Я планирую зацикливать его сутками)))

Да кто же его знает smile.gif Проверь. И зачем сутками зацикливать?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
dron4ik
sergeiss
Хочу сделать подборочку НГ картинок, и все праздники крутить их на своем телеке)))

_____________
Ex3m.com.ua — Активный образ жизни
sergeiss
dron4ik, так возьми готовый слайдер на jQuery и не парь мозги никому, себе в первую очередь smile.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
dron4ik
sergeiss
та оно работает, и практика как не крути)) Просто интересный глюк...

_____________
Ex3m.com.ua — Активный образ жизни
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.