Плагин jQuery Cycle "до" события не работает? - PullRequest
1 голос
/ 12 февраля 2012

Я использую плагин jQuery Cycle.

У меня под слайд-шоу есть тип счетчика "current # / total #". Я обновляю "текущий #" после каждого перехода. Я успешно использую событие обратного вызова after, но кажется, что событие before не работает для первого перехода. Я бы хотел, чтобы текущий # изменил до , когда слайд-шоу переходит к следующему, а не после перехода. У кого-нибудь была эта проблема раньше?

У меня есть следующий код:

slideshow.cycle({ 
    timeout: 6000,
    next: '#nextImage', 
    prev: '#prevImage',
    after: setCurrent
});

function setCurrent(curr,next,opts) {
    $('#imageNumber').html(opts.currSlide + 1);
}

[EDIT]

Мне удалось исправить это с помощью следующего кода:

slideshow.cycle({ 
    timeout: 6000,
    next: '#nextImage', 
    prev: '#prevImage',
    before: setCurrent
});

function setCurrent() {
    var image = $(this);
    $('#imageNumber').html(image.index() + 1);
}

1 Ответ

1 голос
/ 12 февраля 2012

Методы обратного вызова 'before' / 'after' не принимают аргументов. В контексте методов (т. Е. SetCurrent для вас) вы можете использовать 'this' как элемент, который будет отображаться.

Ссылка: http://jquery.malsup.com/cycle/int2.html

Так что вам нужно сделать что-то вроде:

function setCurrent() {
  $('#imageNumber').html(this.id + 1);
}

Примечание: я не знаю остальную часть вашего кода, поэтому вам, возможно, придется адаптироваться ...

...