2015-02-02 2 views
0

Lightbox 구성 요소를 Polymer에 만들려고합니다. 하위 항목은 복수 <img> 태그입니다. 여기에는 섬네일 인 src과 전체 크기 이미지의 경로가 포함 된 data-fullimage 속성이 있습니다.보낸 사람의 데이터 값 가져 오기 Polymer

폴리머 구성 요소에서 이미지 콘텐츠 선택 도구의 클릭 태그를 설정했는데 sender.xyz을 사용하는 모든 자바 스크립트 호출은 이미지 태그가 아닌 content 태그를 반환하므로 이미지 태그에 대한 경로를 검색 할 수 없습니다. 전체 이미지. 클릭 한 이미지의 data-fullimage을 얻는 방법이 있습니까? 아니면 src 값이 필요합니까?

폴리머 구성 요소

imageClick: function(event, detail, sender) 
{ 
     console.log(sender); 
} 

구현

<paper-lightbox> 
    <img src="img/one.png" data-fullimage="img/one-large.png"></img> 
    <img src="img/two.png" data-fullimage="img/two-large.png"></img> 
</paper-lightbox> 

답변

2

필요 없음은 img 태그에 핸들러를 클릭 넣어. 또한 이것들은 paper-lightbox 요소의 함수에 묶여 있지 않기 때문에 작동하지 않습니다. 당신이 원하는 것은

event.path[0].getAttribute("data-fullimage") 

입니다하지만 당신의 빛 DOM 요소가 정확히 하나 개의 요소로 구성되어있는 경우에만 작동합니다. 가벼운 DOM 요소가 더 복잡하지만 어디에서나 클릭 할 수 있어야하는 경우이 표현식을 대신 사용하십시오.

event.path[[].indexOf.call(event.path, sender) - 1].getAttribute("data-fullimage") 
+0

완벽하게 고마워요. 너 너무 많이! –

0

HTML을 시도해보십시오

<paper-lightbox> 
    <img src="img/one.png" on-tap="{{imageTap}}" data-fullimage="img/one-large.png"></img> 
    <img src="img/two.png" on-tap="{{imageTap}}" data-fullimage="img/two-large.png"></img> 
</paper-lightbox> 

JS :

imageTap: function(sender){ 
    var fullImage = sender.target.attributes["data-fullimage"]; 
} 
+0

이것은 아무 것도하지 않는 것 같습니다. 로깅을 시도했지만 그 중 하나도 표시되지 않습니다. JS는 Polymer() 스크립트를 사용합니다. –

+0

당신은 당신의 글에 오타가 있습니다 (소문자 "t"). 이것은 효과가있다. 를 포함하는 폴리머 요소가 있고 이벤트에 대한 수신기가 자바 스크립트 –

+0

에 있으면 요소 안에 들어 있지 않습니다. 'document.addEventLister'를 찾아야합니다. –

관련 문제