Я также обнаружил, что jCarousel возвращает непригодные свойства .first, .last, .prevFirst и .prevLast в то время, когда они вам нужны.
Следовательно, я должен был сделать это грязным способом и решил написать функцию, которая возвращает идентификатор того тега li, который в данный момент является первым в контейнере, путем определения, является ли его смещение слева выше нуля. Если это так, то это первая позиция с положительным положением выше нуля, это мой текущий слайд.
В следующем коде предполагается, что вы поместили id = "listitem-N" в теги списка в цикле foreach (), где N - текущая итерация.
var currSlide = 0;
function getCurrentCarouselItem(){
$("ul#use-cases li.use-case").each(function(){
var leftPos = $(this).offset().left;
if( leftPos >= 0){
var id = $(this).attr('id').split("-");
currSlide = id[1];
return false;
}
});
return currSlide;
}
Причина, по которой я не возвращаю идентификатор в each (), заключается в том, что each () - это функция, и возврат будет возвращаться только для этой функции, а не getCurrentCarouselItem ().