Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Автопрокрутка карусельки (https://javascript.ru/forum/jquery/28178-avtoprokrutka-karuselki.html)

culver 10.05.2012 15:01

Автопрокрутка карусельки
 
Добрый день, помогите начинающему, пожалуйста.
Сделал простую карусельку из дивов, повесил два обработчика событий для прокрутки вправо/влево:
Код:

$(document).ready(function(){

        $(".b-carousel-button-right").click(function(){ // при клике на правую кнопку запускаем следующую функцию:
                $(".h-carousel-items").animate({left: "-168px"}, 400); // производим анимацию: блок с набором картинок уедет влево на 222 пикселя (это ширина одного прокручиваемого элемента) за 200 милисекунд.
                $(".h-carousel-items .b-carousel-block").slice(5,6).css({"display":"block"});
                setTimeout(function () { // устанавливаем задержку времени перед выполнением следующих функций. Задержка нужна, т.к. эти ффункции должны запуститься только после завершения анимации.
                        $(".h-carousel-items .b-carousel-block").eq(0).clone().appendTo(".h-carousel-items").css({"display":"none"});; // выбираем первый элемент, создаём его копию и помещаем в конец карусели
                        $(".h-carousel-items .b-carousel-block").eq(0).remove(); // удаляем первый элемент карусели               
                        $(".h-carousel-items").css({"left":"0px"}); // возвращаем исходное смещение набора набора элементов карусели
                }, 500);
               
        });
       
        $(".b-carousel-button-left").click(function(){ // при клике на левую кнопку выполняем следующую функцию:               
                $(".h-carousel-items .b-carousel-block").eq(-1).clone().prependTo(".h-carousel-items").css({"display":"block"}); // выбираем последний элемент набора, создаём его копию и помещаем в начало набора       
                $(".h-carousel-items").css({"left":"-168px"}); // устанавливаем смещение набора -222px               
                $(".h-carousel-items").animate({left: "0px"}, 400); // за 200 милисекунд набор элементов плавно переместится в исходную нулевую точку
                setTimeout(function () { // устанавливаем задержку времени перед выполнением следующих функций. Задержка нужна, т.к. эти ффункции должны запуститься только после завершения анимации.
                        $(".h-carousel-items .b-carousel-block").eq(-1).remove(); // выбираем последний элемент карусели и удаляем его
                        $(".h-carousel-items .b-carousel-block").slice(5).css({"display":"none"});
                }, 500);
        });

});

Всё работает, но при попытке добавить автоматический вызов события для автопрокрутки:
Код:

$(document).ready(setInterval($(".b-carousel-button-left").click(), 2000););
ничего не работает, даже то, что работало.
Подскажите, пожалуйста, в чём я ошибся?

atlantis 10.05.2012 22:03

$(document).ready(function(){setInterval(function(){$(".b-carousel-button-left").click();}, 2000);});


Часовой пояс GMT +3, время: 04:09.