0

我的表的每一行都有一个删除按钮,它使用 AJAX 获取 json 数组并加载数据。.on() 单击事件位于页面页脚的 fnDrawkCallback 之外。我认为将其放入回调中可以解决此问题,但事实并非如此。

每次从第一个初始化加载表时,到添加或删除行的任何重绘,当我单击任何行中的删除按钮时,只会删除顶部的第一行。为什么单击事件绑定到该行的删除按钮?

删除按钮具有 .remImg 类,该按钮作为键值从 json 数组加载到表中。

谢谢

  var oTable =  $('#sss').dataTable({
        "oLanguage": {
            "sEmptyTable": "No data"
        },
        "bProcessing": true,
        "bServerSide": true,
        //"aaData": testdata,
        "sAjaxSource": 'http://example.com/sss.php',
        "aoColumns": [
    { "mDataProp": "date" },
    { "mDataProp": "action_buttons","bSortable": false } 
    ],
    "fnDrawCallback": function( oSettings ) {

          $(document).on("click", ".remImage", function(e) {

        jQuery.ajax({
            type: 'post',
            url: 'http://example.com/sss.php',
            data: {
                action: 'delete_post',
                att_ID: jQuery('#att_remove').val(),
                _ajax_nonce: jQuery('#nonce').val(),
                post_type: 'sss'
            },
            success: function( html ) {
                alert( html );
                $('#sss').dataTable().fnReloadAjax();               
            }
        });
    return false;
    });
        }
});
4

1 回答 1

1

att_ID: jQuery('#att_remove').val(),

这将仅针对#att_remove页面上的第一个值,因此无论您从何处触发事件,都只会删除您的第一行。

使用另一种方法来访问不依赖于 id 选择器的值,你应该得到你想要的。

于 2013-09-04T12:13:52.877 回答