0

私は 2 つの小さなアイコンを一覧表示する PHP/MySQL グリッドに取り組んでいます。これは私のコードがどのように見えるかです:

PHP:

$output .='<tr id="'.$id.'">';
$output .='<td align="center">'.$expiration_date.'</td>';
$output .='<td>'.$title.'</td>';
$output .='<td>'.$title_pt.'</td>';
$output .='<td align="center">'.$last_update.'</td>';
$output .='<td align="center">'.$active_pack.'</td>';
$output .='<td align="center" class="icon_grid"><a id="edit" title="Open the register." href="special_pack_open.php?id='.$id.'"><img src="images/Write2.gif" width="16" height="16" /></a></td>';
$output .='<td align="center" class="icon_grid"><a id="delete" title="Delete the register." href="#"><img src="images/Trash.gif" width="16" height="16" /></a></td>';
$output .='</tr>';

JQuery:

<script type="text/javascript">
$(document).ready(function() {
    $('table tr[id]').click(function(){
        $(this).closest("tr").remove();
        var obj = $(this);
         $.ajax({
           type: "POST",
           url: 'delete_package.php',
           data: { pk_id: obj.attr("id")},
           dataType: "json",
           success: function(data, evt) {
           if (data.success == "true") {
               alert('The record has been deleted successfuly!');
           } else {
               alert('error');
           }
           }
        })
    })
})
</script>

すべてがとてもうまくいっています。Trash.gif をクリックすると、レジスタが削除され、行が削除されます。次のページに移動するはずの Write2.Gif (2 番目のリンク) をクリックすると、削除と同じアクションが実行されます。JQuery コードを変更して、レジスターの削除専用のリンクが 1 つだけであることを認識させるにはどうすればよいですか?

ありがとうございました。

4

3 に答える 3

0

$("table tr[id]")任意の属性を持つ任意trの子孫である任意のセレクターです。より具体的なセレクターが必要です。tableid

多くの行があるため、編集/削除にはIDの代わりにクラスを使用する必要があります。

$(".delete").on("click", function () { /* your code */

イベントを委任する必要がある場合もあります

$("#id-of-table").on("click", ".delete"
于 2013-09-04T19:32:58.757 に答える