Как перезагрузить JCarousel

Я использую подключаемый модуль jcarousel, и у меня возникла проблема. Все работает нормально, отзывчиво и приятно, когда я загружаю Интернет, но если я изменяю размер окна браузера, карусель портится.

Я понял, что должен запустить jcarousel reload method, чтобы он пересчитал количество слайдов и их размеры. Проблема в том, что я не могу перезагрузить карусель. Пожалуйста, смотрите код ниже:

Это то, что делает мою jcarousel отзывчивой (это работает нормально):

 var jcarousel = $('.jcarousel');

    jcarousel.on('jcarousel:reload, jcarousel:create', function () {
        console.log('reloading carousel');
            var carousel = $(this),
            width = carousel.innerWidth();
            cantSlides = 1;
            if (width >= 1600){
                width = width / 4;
                cantSlides = 4;
            }else if (width >= 1200) {
                width = width / 3;
                cantSlides = 3;
            }else if (width >= 800) {
                width = width / 2;
                cantSlides = 2;
            }
            carousel.jcarousel('items').css('width', Math.ceil(width) + 'px');

            $('.jcarousel-control-prev')
            .jcarouselControl({
                target: '-='+cantSlides
            });

            $('.jcarousel-control-next')
            .jcarouselControl({
                target: '+='+cantSlides
            });

        })

И вот что не работает:

$(window).resize(function(){
  $('.jcarousel').jcarousel('reload', {});
});

Я поместил console.log внутри функции перезагрузки карусели, создания. Он регистрируется, когда я нажимаю F5, но не при изменении размера окна браузера. Почему мое событие перезагрузки не срабатывает?

Спасибо!


person pablito.aven    schedule 14.10.2015    source источник
comment
попробуйте с animation:slow для перезагрузки   -  person dreamweiver    schedule 14.10.2015
comment
@dreamweiver по-прежнему не работает :( В консоли не отображаются ошибки, но она не срабатывает.   -  person pablito.aven    schedule 14.10.2015
comment
Не могли бы вы воспроизвести то же самое на jsfiddle,jsfiddle.net   -  person dreamweiver    schedule 14.10.2015


Ответы (1)


Я нашел, где была ошибка! jcarousel.on('jcarousel:reload, jcarousel:create', function () { был неправильным, правильный синтаксис таков: jcarousel.on('jcarousel:reload jcarousel:create', function () {, с пробелом вместо запятой.

person pablito.aven    schedule 14.10.2015
comment
Хорошо, теперь давайте закроем этот вопрос, приняв ответ - person dreamweiver; 15.10.2015