Запустите jCarouselLite снова после AJAX-запроса - PullRequest
0 голосов
/ 24 февраля 2012

Я использую jCarouselLite, чтобы показать скроллер сообщений, который загружает сообщения из определенной категории.Но я хочу иметь возможность переключать категорию через AJAX.

Итак, я загружаю все в div и запускаю:

jQuery(function($) {
$("#serviceNews").jCarouselLite({
    vertical: true,
    hoverPause:true,
    visible: 2,
    auto:2000,
    speed:1000
});

});

И это работает ... до тех пор, пока ajax не обновит innerHTML #serviceNews.Тогда jCarouselLite перестает работать.Я пытался использовать livequery:

jQuery(function($) {
$("#serviceNews").livequery(function(){
    $(this).jCarouselLite({
        vertical: true,
        hoverPause:true,
        visible: 2,
        auto:2000,
        speed:1000
    });
});

});

Но происходит то же самое.Я не очень знаком с jQuery, поэтому я, вероятно, упускаю что-то очевидное.

Демонстрацию можно найти здесь (средняя колонка под баннером с кнопками switchCategory под скроллером).

Ответы [ 2 ]

2 голосов
/ 18 мая 2012

надеюсь, что вы используете последний код https://github.com/kswedberg/jquery-carousel-lite

В документации упоминается, что вы можете закончить карусель с

$('div.carousel').trigger('endCarousel')

Так что каждый раз, когда вам нужно обновить карусель, просто endCarousel, а затем снова привязывайте jCarouselLite к div

1 голос
/ 26 января 2013

Решение от maniac_user работает для меня.

Попробуйте установить:

$("div.carousel").trigger("endCarousel");

Перед вашим кодом jCarousel:

$(".auto .jCarouselLite").jCarouselLite({
  speed: 14700,
  btnNext: ".next",
  vertical: true,
  hoverPause:true,
  visible: 1
});
...