0

クリックの画像の変更に問題があります。データベースメッセージがあります。すべてのメッセージのステータスは 0 または 1 です。コードから、ステータス画像をクリックする必要があり、変更されますが、最初のメッセージのみが変更されます。他のメッセージ ステータスをクリックすると、変更されず、最初のステータスのみが変更されます。どうすればこの走りができますか!!!

<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> 
4

3 に答える 3

1

#bgメッセージ コントロールでを変更する必要があります。イベント ハンドラーfindで、ネストされたbg要素を取得するために使用します。

$('.imageCheck').click(function(e){
   e.preventDefault();
   $(this).find("#bg").attr('src',"/application/admin/img/tick.png");  
});  
于 2012-12-28T21:13:09.893 に答える
0

ID はページ上で一意である必要があります。ループしているため、id bg の複数の img が作成されるため、最初の 1 つだけが機能します。

BenMがそれを.bgに変更すると述べているように、コードを更新してdivの下の正確な画像を見つけます

$(".bg", $(this)).attr('src',"/application/admin/img/tick.png"); 
于 2012-12-28T21:13:45.417 に答える
0

ID は DOM 内に 1 回しか存在できない (むしろ存在するべき) ためです。jQuery は、セレクターに一致する最初の要素のみを変更してい#bgます。代わりにクラスを使用してみてください:

<img class="bg" />

$('.bg').attr('src', '...');
于 2012-12-28T21:12:19.320 に答える