I'm having a strange problem with a customised jCarousel I'm working
on.

The carousel has 16 dynamically loaded items, 4 are visible and it
scrolls by 4. The prev/next buttons are custom and wrap is set to
both.

Everything works fine until it gets to the 4th page of items, where it
will only scroll in 3 more items, making the last item from the 3rd
page become the first item of the 4th page leaving the very last item
still hidden until you click next - it will then scroll by 1 to
display the last item.

After this point, if you click next again it will wrap to the start as
intended.

I've tried logging the values of the carousel.first / carousel.last to
firebug with some inconsistent results.

When it first loads, carousel.first is set to 1 and carousel.last is
5.
Click next and carousel.first becomes 5 and carousel.last becomes 8
(which I dont think is correct).
Click next again and carousel.first is now 9 and carousel.last is 12
(its acting like scroll option is set to 3).

Anyone come across something similar before?

My code:

$jQ('#featured-carousel').jcarousel({

        scroll: 4,
        visible: 4,
        wrap: 'both',
        buttonNextHTML: null, buttonPrevHTML: null, //dont build
buttons - we use custom ones
        animation: 1200,
        itemLoadCallback: {
          onBeforeAnimation: itemLoadCallback,
          onAfterAnimation: setPageBoxStyle // styling stuff
        }

});



function itemLoadCallback(carousel, state) {
  if (state != 'init') {
    return;
  }

  // next button
  $jQ('.carousel-next').bind('click', function() {
    carousel.next();
    setPageBoxStyle(carousel);
    return false;
  });

  // previous button
  $jQ('.carousel-prev').bind('click', function() {
    carousel.prev();
    setPageBoxStyle(carousel);
    return false;
  });


  // remote dwr method with call back to get items
  RemotedFeatures.listFeaturedReleases(

      function( releases ) {

        $jQ(releases).each(
          function(i){
            carousel.add(i, getItemHTML(this));
          }
        );

        carousel.size(releases.length);
      }
    );

}

Reply via email to