Я использую fancybox http://fancyapps.com/fancybox/, чтобы добавить всплывающее окно на моем сайте. Я также добавил ссылку под лайтбокс, вытаскивая изображение, и пытаюсь изменить другие вещи на странице.
Если я ставлю функцию click в jsfiddle, она будет работать нормально:
но когда он щелкнут изнутри лайтбокса, функция события клика не запускается:
<script>
$(document).ready(function() {
$(".fancybox-thumb").fancybox({
afterLoad: function() {
this.title = '<a class="selectlink" href="#" id="' + this.title + '">Select This Image</a> ';
},
prevEffect : 'none',
nextEffect : 'none',
helpers : {
title : {
type: 'outside'
},
thumbs : {
width : 50,
height : 50
}
}
});
$('.selectlink').click(function () {
var myId = $(this.id);
alert(this.id);
$('#' + myId).prop('checked', true);
});
});
</script>
Это html/php
echo '<div class="imagewrapper">';
echo '<a title="'.$row2['id'].'" class="fancybox-thumb" rel="fancybox-thumb" href="albums/'.$albumid.'/800x600/'.$row2['image'].'"><img style="border-radius:5px;" src="albums/'.$albumid.'/thumbnails/'.$row2['image'].'" /></a>';
echo '<div style="text-align:center;">';
echo '<strong>Select : </strong><input class="selectcheckbox" type="checkbox" name="'.$row2['image'].'" id="'.$row2['id'].'" />';
echo '</div>';
echo '</div>';
Пытаться:
$(document).on('click', '.selectlink', function () {
var myId = $(this.id);
alert(this.id);
$('#' + myId).prop('checked', true);
});
В основном, что происходит, элемент не загружается при установке обработчика событий, но с использованием .on
будет делегировать событие из документа в требуемый элемент. поэтому элементы, которые будут добавлены в будущем, также увидят событие.
Я получил там, в конце концов:
$(document).on('click', '.selectlink', function () {
var myId = $('#check_' + this.id);
$(myId).attr('checked', true);
countChecked();