2012-12-28 219 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");