Завершение работы плагина цикла jQuery [cycle]; слишком мало слайдов: 1

#jquery #jquery-cycle

#jquery #jquery-цикл

Вопрос:

Я получаю сообщение об ошибке ниже:

завершает [цикл]; слишком мало слайдов: 1

Ниже приведен код для цикла jQuery. Я не уверен, почему это выходит в Chrome

 var inners = $('ul#output li').cycle().cycle('stop');

        var slideshow = $('ul#output').cycle({
            fx: 'scrollHorz',
            speed: 300,
            timeout: 0,
            startingSlide: 0, 
            before: function() {

                // stop all inner slideshows
                inners.cycle('stop');

                // start the new slide's slideshow
                $(this).cycle({
                    fx: 'fade',
                    timeout: 1000,
                    autostop: true,
                    end: function() {
                        // when inner slideshow ends, advance the outer slideshow
                        slideshow.cycle('next');
                    }
                });
            }
        });

        $.featureList(
                $("#tabs li a"),
                $("#output li"), {
                    start_item  :   0
                }
            ); 
  

Что может быть не так?

Ответ №1:

на самом деле эта ошибка возникает, когда ваши скользящие элементы меньше 2. если вы хотите запустить плагин цикла в одном элементе, перейдите к

jquery.cycle.all.js

и найдите

 if (els.length < 2) {
            log('terminating; too few slides: '   els.length);
            return;
        }
  

и измените ограничение условия на 1, например

 if (els.length < 1) {
            log('terminating; too few slides: '   els.length);
            return;
        }
  

если вы не хотите запускать один элемент, вам следует поставить условие на стороне вашего языка
, которое отображает элемент, если количество элементов> 2

Ура!

Мудассар Али

Ответ №2:

Это что-то с вашей первой строкой:

 var inners = $('ul#output li').cycle().cycle('stop');
  

Вы пытаетесь создать .cicle() внутри .cicle() . Если вы попытаетесь:

 var inners = $('ul#output').cycle().cycle('stop');
  

Он не возвращает никакой ошибки.