JQuery Cycle ActiveClass работает только после нажатия кнопки навигации - PullRequest
0 голосов
/ 14 октября 2011

Обновлено - Добавлена ​​функция onAfter

У меня странная проблема с циклом.

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

Вот мой jquery:

$(document).ready(function() {

$('.slideshow').cycle({
            fx: 'scrollHorz',
            timeout: 4000,
            pause: 1,
            pager: '#nav_slide',
            prev:   '#prev_btn', 
            next:   '#next_btn',

            after:   onAfter,

            pagerAnchorBuilder: paginate


        });

});


                        function paginate(idx, el)


  {
    return '<div class="slide' + idx + '"></div>';
}


                    function onAfter() { 

var hasClass = $(".slide3").hasClass("activeSlide");
var hasTheClass = $(".slide0").hasClass("activeSlide");

if(hasClass == true) {
    $("#nav_slide").animate({"left": "-=226px"}, "fast");
}else if(hasTheClass == true) {
    $("#nav_slide").animate({"left": "0px"}, "fast");
}

}

Есть идеи?Я уже некоторое время в тупике!

Заранее спасибо.

1 Ответ

0 голосов
/ 14 октября 2011

Небольшое разъяснение в постановке задачи поможет

1) У вас проблемы с "навигационными кнопками" или "кнопками пейджера"?
2) Что такое "activeClass".Вы имеете в виду «activeSlide», который добавляется к элементам пейджера (1,2,3 ..)?
3) Пожалуйста, вставьте HTML и CSS, если они актуальны.

PS: Поскольку элементы пейджера являются ссылками на слайды, я бы рекомендовал использовать вместо

function paginate(idx, el) {
                return '<a href="#">'+ (idx + 1) +'</a>';
            }
...