Показать сообщение отдельно
  #5 (permalink)  
Старый 14.03.2015, 19:26
Новичок на форуме
Отправить личное сообщение для Kobe_kobe Посмотреть профиль Найти все сообщения от Kobe_kobe
 
Регистрация: 12.03.2015
Сообщений: 5

Спасибо. Функция заработала, но работает некорректно. При нажатие на кнопку первой карусели два раза перелистывает вторую(2 элемента перелистывает) . При нажатие на кнопку второй карусели, при первом клике также перелистывает вторую карусель дважды(2 элемента). Не могли бы вы подсказать, что не так с кодом?

var carWidth=240;
   var visibleSlide = 3;
   var blockMargin = 10;

 function makeSlider (a) {
        var el;
        $el = $(a);
        $(function(){
        $el.find('.blocks').width($el.find('.blocks').children().size()*carWidth);


            $('.next_car').click(function(){
                nextCar();
            });
            $('.prev_car').click(function(){
                prevCar();
            });
        });


        function nextCar(){
            var currentSlide=parseInt($el.find('.blocks').data('current'));
            currentSlide++;
            if(currentSlide>=visibleSlide)
            {
                $el.find('.blocks').css('left',-(currentSlide-2)*carWidth+blockMargin);
                $el.find('.blocks').append($el.find('.blocks').children().first().clone());
                $el.find('.blocks').children().first().remove();
                currentSlide--;
            }
            $el.find('.blocks').animate({left: -currentSlide*carWidth},300).data('current',currentSlide);
        }

        function prevCar(){
            var currentSlide=parseInt($el.find('.blocks').data('current'));
            currentSlide--;
            if(currentSlide<0)
            {
                $el.find('.blocks').css('left',-(currentSlide+2)*carWidth-blockMargin);
                $el.find('.blocks').prepend($el.find('.blocks').children().last().clone());
                $el.find('.blocks').children().last().remove();
                currentSlide++;
            }
            $el.find('.blocks').animate({left: -currentSlide*carWidth},300).data('current',currentSlide);
        }
    }
     makeSlider('#carousel1');
    makeSlider('#carousel2');
Ответить с цитированием