I am attempting to get the index of the current item in a JCarousel so that I can display the current position within the Carousel to the user. For example, '13/20'.
How can I do this?
EDIT:
Sample of the end product:
I am attempting to get the index of the current item in a JCarousel so that I can display the current position within the Carousel to the user. For example, '13/20'.
How can I do this?
EDIT:
Sample of the end product:
I found this method of highlighting the jcarousel controller that may contain the answer.
I too have found that jCarousel returns unusable .first, .last, .prevFirst and .prevLast properties at the times that you need them.
Hence, I had to do it the dirty way and decided to write a function that returns the ID of whichever li tag is currently the first in the container, by reading whether or not it's left-offset is above zero. If so, and it's the first one with an above-zero left position, it's my current slide.
The following code assumes that you've put an id="listitem-N" in the list tags in your foreach() loop, where N is the current iteration.
The reason I don't return the id in the each() is because each() is a function and the return will only return for that function, not getCurrentCarouselItem().
If the items in your carousel can be re-ordered, the only reliable way I've found to get the index of the current item is:
Here's why.
You'll notice that
this.id
of each item in the carousel is something likeimage-1
where 1 is the original index of the item in the carousel before its order was changed. That index appears to be what is retrievable using thejcarousel:animateend
event and callingcarousel.index($(this).jcarousel('first'))
.However, once you start reordering the items in the carousel, that event is no longer helpful, and the number in the id is now misleading. So, we need to use the position of the
<li>
in the<ul>
to determine index of the current item.Depends of what you want to do but here is a more "generic way" to do the same, instead that you return the object itself and not is id:
you can use any number of attributes to indentify slide and data inside
You can use: