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

jCarousel: Get the filename (path) of the image which is currently shown (only one at a time)

本文关键字:显示 一次 一个 文件名 获取 jCarousel 图像 路径      更新时间:2023-09-26

在滑块附近有一个放大按钮。现在我想为我的fancybox更改锚的href属性。出于这个原因,我需要获得jCarousel的当前图像。由于文件路径总是相同的,我不需要路径,但如果我得到path + filename也可以。我想我必须遍历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中显示的元素应该在fanybox中放大。所以我必须寻找另一种可能性

如果我理解了你的意思,这应该可以工作:

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