jCarousel:获取当前显示的图像的文件名(路径)(一次只有一个)

时间:2011-11-25 16:29:43

标签: javascript jquery fancybox jcarousel

滑块附近有一个放大按钮。现在我想为我的fancybox更改锚点的href属性。出于这个原因,我需要获取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 个答案:

答案 0 :(得分:1)

如果我明白你的意思,这应该有效:

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