2013-09-23 36 views
0

我使用以下腳本創建圖片庫,人們點擊他們想要的圖片下的複選框,然後將它們提交給我。這工作正常,但我現在已經添加了Jquery Fancybox,它將更大版本的圖像打開到lightbox中。該腳本然後在lightbox圖片「選擇此圖片」下創建一個鏈接。我想要做的是,當用戶點擊該鏈接時,它會檢查/取消選中(如果用戶再次按下鏈接)主頁上圖像下方的選擇框。我似乎無法得到它的工作,雖然,這是我有:點擊鏈接時勾選複選框 - jquery

這是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>'; 
     } 

發生了什麼是在Lightbox彈出窗口中創建的鏈接就好了,鏈接的標題是文件名,例如123456.jpg,但是當我點擊鏈接時,ID爲123456.jpg的複選框不會被打勾?

+2

使用'.prop()'而不是'.attr()' –

回答

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); 
}); 

我不能馬上測試,但它可能工作。

+0

這似乎不起作用,複選框和鏈接都有相同的ID它應該在理論上做? –