Цикл jQuery уничтожил цикл с автостопом, перезапустил его, теперь он останавливается на 2-м слайде вместо того, чтобы проходить их все

У меня есть слайдер цикла jQuery (.team_spotlight) с 9 слайдами. Он настроен на автоматическую остановку. После автостопа он должен запускать пользовательскую функцию, которая уничтожает ползунок, а затем перезапускает все.

В первый раз, когда ползунок просматривает все 9 слайдов, он отлично работает. Однако после того, как ползунок уничтожен, а затем перезапущен, он останавливается на втором слайде вместо того, чтобы проходить через все 9.

Причина такой странной настройки в том, что у меня есть собственный класс («переворот»), добавляемый к моему пейджеру каждый раз, когда слайд продвигается. Вы можете представить себе мой пейджер так: активная страница желтого цвета, предыдущие страницы красные, предстоящие страницы зеленые. Я также вставляю уникальные идентификаторы на каждую страницу, чтобы сделать еще несколько стилевых вещей.

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

Если есть лучший способ добиться этого цветового эффекта (без необходимости разрушать ползунок), я весь в ушах. В противном случае мне нужно исправить, почему цикл «застревает» на втором слайде после уничтожения и перезапуска.

Мой javascript:

function paginate(ind, el) {
    return '<a class="slidenav" id="slide' + ind + '"></a>';
}   

function shifttab() {
    $('.activeSlide').addClass('flip');
}

function resettabs() {
    $('.team_spotlight').cycle('destroy');
    tabsanim();
}

function tabsanim() {
    $('.team_spotlight').cycle({
        fx: 'fade',
        pause: 1,
        speed: 0,
        timeout: 4000,
        cleartypeNoBg: true,
        pager:  '#pagernav',
        pagerAnchorBuilder: paginate,
        pagerEvent: null,
        after: shifttab,
        autostop: 1,
        end: resettabs
    });     
}


$(document).ready(function() {
    tabsanim();
});

РЕДАКТИРОВАТЬ:

Ошибка уничтожения все еще существует, и было бы полезно ее исправить.

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


person Jamie    schedule 26.01.2012    source источник
comment
Привет, я отправил отчет об ошибке (с возможным исправлением): github.com/malsup/cycle/ вопросов / 108   -  person biziclop    schedule 10.04.2012


Ответы (1)


Try to comment out or remove the line:

autostop: 1,
in tabsanim()

Вот новая функция ...

function tabsanim() {
    $('.team_spotlight').cycle({
        fx: 'fade',
        pause: 1,
        speed: 0,
        timeout: 4000,
        cleartypeNoBg: true,
        pager:  '#pagernav',
        pagerAnchorBuilder: paginate,
        pagerEvent: null,
        after: shifttab,
        end: resettabs
    });     
}

................. Следующий таймер НЕ решил проблему, но вышеуказанное изменение решило ее.

function resettabs() {
    $('.team_spotlight').cycle('destroy');
    setTimeout("tabsanim()",300);
    }
person bdhac    schedule 26.01.2012
comment
Нет, не исправил. Такое же поведение. - person Jamie; 27.01.2012
comment
OK. Не обращайте внимания на таймер, я протестировал ваш код, удалив атрибут option autostop: 1, см. Мой ответ выше - person bdhac; 27.01.2012
comment
Моя первая итерация, мне нужна была автостоп. Я больше этого не делаю (см. Мою правку), и, следовательно, мне даже не нужно ничего разрушать. Тем не менее, все еще не уверен, что вызвало исходную ошибку. - person Jamie; 27.01.2012