2011-11-25 1 views
0

슬라이더 옆에 확대 버튼이 있습니다. 이제 fancybox에 대한 앵커의 href 속성을 변경하고 싶습니다. 이런 이유로 jCarousel의 현재 이미지를 가져와야합니다. 파일 경로가 항상 같기 때문에 경로가 필요 없지만 path + filename을 얻는다면 OK 일 것입니다. 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); 
} 

그러나 예상대로 내 생각은 일을하지 않았다

이 작동하는 것 같다. 일반적으로 내 갤러리에는 세 가지 항목이 있습니다. 이제 팬시 박스에 4 개의 콘텐츠 (중복 콘텐츠)가 있으며 마지막 위치에 있습니다. 나는 단지 세 가지 요소 만 가지기를 희망하고 현재 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

관련 문제