2012-12-28 252 views
0

我有一個問題,我點擊更改圖像,我有數據庫消息,每條消息都有一個狀態0或1,從我的代碼o必須點擊狀態圖像,它會改變,其變化但僅限於第一條消息。當我點擊其他消息狀態時,它不會改變,但只會改變第一個狀態。我怎麼能跑這個運行!jquery更改點擊圖片

<script type="text/javascript"> 
$(function() { 
$('.imageCheck').click(function(e){ 
e.preventDefault(); 
$("#bg").attr('src',"/application/admin/img/tick.png"); 
});  
}); 

    </script>  

          <th>Status</th> 

       </tr> 
      </thead> 
      <tbody> 
       <?php 
       foreach ($users as $user): 

       ?> 
       <tr> 
        <td><?=$user['id']?></td> 
        <td>              
    <div class="imageCheck"><img id="bg" src="<?php echo $img_path;?>publish_x.png" name="statusCheck" value="0" /> 
                </div>              
              </td> 
+0

下準確圖像,並儘量遠離PHP短標籤了。 – BenM

+0

我相信'<?='短標很好。 – Geo

回答

1

您需要更改您的消息控制中的#bg。在事件處理程序中使用find來獲取嵌套的bg元素。

$('.imageCheck').click(function(e){ 
    e.preventDefault(); 
    $(this).find("#bg").attr('src',"/application/admin/img/tick.png"); 
}); 
+0

會建議將#bg更改爲.bg,以便您沒有多個相同的ID –

+0

同意應該更改它。但即使是具有相同ID代碼的多個元素也可以工作。 – Samich

+0

thaks Samich工作:) – serii

0

因爲一個ID可以(或者更確切地說,應)只在DOM存在一次。 jQuery只是改變匹配選擇器#bg的第一個元素。嘗試使用班級:

<img class="bg" /> 

$('.bg').attr('src', '...'); 
0

該ID應該是在頁面上唯一。既然你正在循環,你將會有多個id爲bg的img,所以只有第一個可以工作。

爲BenM狀態更改爲.bg也更新代碼找到DIV

$(".bg", $(this)).attr('src',"/application/admin/img/tick.png");