jCarousel: получить имя файла (путь) изображения, которое отображается в данный момент (только по одному за раз) - PullRequest
0 голосов
/ 25 ноября 2011

У меня есть кнопка увеличения возле слайдера. Теперь я хочу изменить атрибут href привязки для моего fancybox. По этой причине мне нужно получить текущее изображение jCarousel. Поскольку путь к файлу всегда один и тот же, мне не нужен путь, но если я получу путь + имя файла, все будет в порядке. Я думаю, что я должен пройти DOM и установить атрибут href якоря.

Это то, что я имею до сих пор:

function getCurrImage(carousel, state){
   /*alert(carousel.first);*/
}

jQuery(document).ready(function() {
    jQuery('#mycarousel').jcarousel({
        scroll:1,
        'itemLoadCallback': getCurrImage 
    });
});

Это дает мне индекс текущего изображения в слайдере (например, 1). Также эта функция вызывается несколько раз (не знаю почему). Вот мой псевдокод:

var imagepath = jQuery.find(".jcarousel-item:nth-child(carousel.first)".a.img.attr("src");
jQuery.find(a.enlarge).attr("href",imagepath);

Будет ли это работать?

Редактировать:

Кажется, это работает:

function getCurrImage(carousel, state){
    var currentImage = carousel.first-1;
    var path = jQuery(".jcarousel-item").eq(currentImage).children('a').attr("href");
    jQuery("A.enlarge").attr("href", path);
}

Но моя идея не сработала, как ожидалось. Обычно у меня есть три предмета в моей галерее. Теперь у меня четыре (дублированный контент) в fancybox, и я на последней позиции. Я надеялся, что у меня будет только три элемента, и тот, который в настоящее время показан в jCarousel, должен быть увеличен в fancybox. Поэтому я должен искать другую возможность ...

1 Ответ

1 голос
/ 25 ноября 2011

Если я понял, что вы имеете в виду, это должно работать:

function getCurrImage(carousel, state){
    var currentImage = carousel.first;
    var path = $(".jcarousel-item").eq(currentImage).attr("src");
    $("A.enlarge").attr("href", path);
}
...