2011-11-25 21 views
0

我在滑塊附近有一個放大按鈕。現在我想更改我的fancybox的錨的href屬性。爲此,我需要獲取jCarousel的當前圖像。由於文件路徑總是相同的,我不需要路徑,但如果我得到路徑+文件名,它也可以。我想我必須遍歷DOM並設置錨點的href屬性。jCarousel:獲取當前顯示的圖像的文件名(路徑)(一次只有一個)

這是我到目前爲止有:

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

如果我明白你的意思,這應該工作:

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

我得到的路徑是不確定的。我認爲原因是'jcarousel-item'有子元素'a'和'img'。只有最後一個(img)具有'src'屬性。 – testing

+0

這聽起來是錯誤的可能原因。您可以發佈插件在您的OP中生成的HTML嗎? –

+0

現在我得到了這個運行(見我編輯的問題)。但它不能按需要工作。你有這個想法嗎?我想要一個放大jcarousel中當前圖像的按鈕。爲了擴大我想使用fancybox。 – testing

相關問題