전체 크기 이미지가 라이트 박스로 표시되는 이미지 갤러리를 만들고 있습니다. 라이트 박스의 내용은 외부 파일의 아약스로드 HTML입니다. 이 동작을 위해 Magnific Popup 스크립트를 사용하고 있습니다. 라이트 박스에 표시된 현재 이미지의 아무 곳이나 직접 클릭하여 다음 갤러리 이미지로 이동할 수 있도록하려고합니다. 문제는 DOM에 명확하게 삽입되었지만 클릭 이벤트를 감지 할 수 없었기 때문입니다.Magnificent Popup에서 동적으로 추가 된 요소를 찾지 못했습니다. 아약스 갤러리에서 현재 항목을 클릭하면 다음 항목으로 이동하려고합니다
홈페이지보기 :main.html
<div class="gallery">
<a href="gallery.php?photo=image-1.jpg">thumb-1.jpg</a>
<a href="gallery.php?photo=image-2.jpg">thumb-2.jpg</a>
<a href="gallery.php?photo=image-3.jpg">thumb-3.jpg</a>
</div>
라이트 박스 내용 :gallery.php
<?php echo '<img class="item" src="img/' . $_GET['photo'] . '" >'; ?>
jQuery를 :
$('.gallery').each(function() {
$(this).magnificPopup({
delegate: 'a',
type: 'ajax',
gallery: {
enabled: true,
navigateByImgClick: true
}
});
});
문서에 navigateByImgClick
옵션이 표시되지 않지만 현재 갤러리 항목을 클릭하면 다음 갤러리 항목으로 이동하게됩니다. 그러나, 적어도 내 테스트에서, 이것은 ajax 갤러리 (type
이 ajax
으로 설정된 경우)에서 작동하지 않는 것 같습니다. 그래서 나는 조각을 추가했던 것은 클릭 이벤트가 감지되고 있는지 확인합니다 :
$('.item').on('click', function() {
alert('click detected');
});
.item
갤러리 항목의 선택이다. 그러나 클릭이 감지되지 않습니다 (클릭시 경고가 표시되지 않음).
먼저 클릭이 감지되지 않는 이유는 무엇입니까?
둘째, 아약스 갤러리를 사용할 때 Magnific Popup을 설정하여 다음 갤러리 항목을로드하는 방법은 무엇입니까?