나는 다음과 같은 구조의 DOM 요소를 가지고 :Uranium.io의 줌 인터랙션으로 확대/축소 버튼을 사용하여 확대/축소 할 이미지를 찾는 데 필요한 것은 무엇입니까?
<div class="flexslider" data-ur-set="zoom">
<div data-ur-zoom-component="loading" data-ur-state="disabled">Loading…</div>
<div data-ur-zoom-component="button" data-ur-state="disabled">
<span>+</span><span>−</span>
</div>
<ul class="slides" data-ur-zoom-component="view_container">
<li><img src="//mydomain.com/path/to/small/image" onerror="this.src=altView.src" class="thumbnail selected-thumbnail" data-ur-src="//mydomain.com/path/to/large/image" data-ur-zoom-component="img"></li>
<li><img src="//mydomain.com/path/to/small/image" onerror="this.src=altView.src" class="thumbnail" data-ur-src="//mydomain.com/path/to/large/image" data-ur-zoom-component="img"></li>
<li><img src="//mydomain.com/path/to/small/image" onerror="this.src=altView.src" class="thumbnail" data-ur-src="//mydomain.com/path/to/large/image" data-ur-zoom-component="img"></li>
</ul>
</div>
나는 이미지 자체 (현재 표시된 슬라이드의 하나) 인/아웃 작품에서 줌을 클릭합니다. 그러나, 나는 그 null
형식 오류가 위의 코드에서 발생합니다 어디 표명 TypeError: $img.data(...) is null
function setActive(img) {
if ($img && img != $img[0]) {
self.state = "enabled-out";
var zoomImg = $img.data("urZoomImg");
zoomImg.transform(0, 0, 1);
zoomImg.transitionEnd();
}
$img = $(img);
}
// zoom in/out button, zooms in to the center of the image
$(self.button).on(touchscreen ? "touchstart.ur.zoom" : "click.ur.zoom", function() {
if (self.img.length > 1)
setActive($(self.img).filter($container.find("[data-ur-state='active'] *"))[0]);
else
setActive(self.img[0]);
$img.data("urZoomImg").zoom(); // <---- This is the line throwing the error
});
말한다 나는 자바 스크립트 콘솔에서 오류가 표시 이미지에 +
버튼 범위를 클릭합니다. 나는 그것을 추적하고 setActive가 undefined
img 매개 변수를 보내고 있음을 발견했습니다.
우라늄 확대/축소 상호 작용의 데이터 속성이 정확하지 않다고 생각하지만 +
버튼이이 오류를 발생시키는 이유는 무엇입니까?
올바른 동작은 여기에 예제와 같다 : http://uranium.io/interactions/zoom.html 내 위치에 자신을 발견하는 사람들을 위해
안녕하세요 사가. 현재 나는 브레이크 포인트를 사용하고 Firebug에서 표현식을 관찰하고있다. 나는 그 $ container.find ("[data-ur-state = 'active'] *")를 보았는데, 어떤 이미지도 찾지 못했기 때문에 필터는 빈 목록을 반환한다. –