jcarousel.jcarousel('visible') поставляет неверное количество товаров

Я использую плагин jcarousel в моем проекте. Я использую следующую функцию, чтобы актуализировать нумерацию слайдера продукта

actualizePagination: function(element) {
    var jcarousel = element.find('.jcarousel');
    var visibleItems = jcarousel.jcarousel('visible').length;
}

Когда я загружаю страницу с ползунком продукта в первый раз, visibleItems показывает значение 5 (неверно). Теперь, когда я делаю какое-либо событие на productlider, например, изменяю размер браузера или нажимаю на элемент управления jcarosel, visibleItemsстановится 6, что правильно. Как элементы jcarosel устанавливаются как "видимые" в плагине? это ошибка обновления?

1 ответ

Это может быть связано в jcarousel v0.3.4. При первой загрузке я получал неверное количество элементов нумерации страниц. Затем это исправило себя, когда я изменил размер окна браузера. Новый размер окна не должен был повлиять на макет страницы, но, скорее всего, вызвал прослушиватель событий. Тогда jcarousel получит правильную нумерацию страниц. Мой код был запущен на готовом документе.

Я тогда вызвал событие изменения размера окна, и это решило проблему.

$(window).trigger('resize');

Я попытался отложить активацию jcarousel, и это тоже сработало, поэтому я придерживаюсь этого решения.

setTimeout(function(){
            activateCarousel();
        }, 300);

function activateCarousel() {    
      $('.jcarousel').jcarousel();

      $('.jcarousel-pagination')
         .on('jcarouselpagination:active', 'a', function() {
             $(this).addClass('active');
         })
         .on('jcarouselpagination:inactive', 'a', function() {
             $(this).removeClass('active');
         })
         .jcarouselPagination();
}
Другие вопросы по тегам