我使用以下脚本创建图库,人们点击他们想要的图片下方的复选框,然后将它们提交给我。这工作正常,但我现在添加了Jquery Fancybox,它将更大版本的图像打开到灯箱中。然后,该脚本在灯箱图像“选择此图像”下创建一个链接。我想要做的是当用户点击该链接时,然后检查/取消选中(如果用户再次按下该链接)主页上图像下的选择框。我似乎无法让它工作,这就是我所拥有的:
这是Jquery:
<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
}
}
});
});
$(function () {
$('#selectlink').click(function () {
$('.imagewrapper').find(this.id).attr('checked', this.checked);
});
});
</script>
这是html / php部分:
$sql2 = <<<SQL
SELECT *
FROM `albums`
WHERE albumid = '$albumid' AND isalbum = ''
SQL;
if(!$result2 = $db->query($sql2)){
die('There was an error running the query [' . $db->error . ']');
}
while($row2 = $result2->fetch_assoc()){
echo '<div class="imagewrapper">';
echo '<a title="'.$row2['image'].'" 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 type="checkbox" name="'.$row2['image'].'" id="'.$row2['image'].'" />';
echo '</div>';
echo '</div>';
}
正在发生的事情是灯箱弹出窗口中创建的链接很好,链接的标题是文件名,例如123456.jpg,但是当我点击链接时,id为123456.jpg的复选框不会打勾?。
答案 0 :(得分:0)
您可以先尝试设置变量,因为this.id可能会引用$('。imagewrapper')。
$('#selectlink').click(function () {
$('.imagewrapper').find(this.id).attr('checked', this.checked);
});
会变成:
$('#selectlink').click(function () {
var myId = $(this).find(this.id);
$('.imagewrapper #' + myId).attr('checked', this.checked);
});
我现在无法测试它,但它可能有用。