您好,我有一个按钮,单击,从数据表中删除一行,然后重绘自身。我尝试了this,但在删除该行时将其数据表恢复为默认设置:

var tbl;
$(document).ready(function() {
    tbl = $('#myTable').DataTable({
        "bLengthChange": false,
        "bFilter": false,
        "iDisplayLength": 5,
        "columns": [{
            "width": "50%"
        }, {
            "width": "10%"
        }, {
            "width": "10%"
        }, {
            "width": "10%"
        }, {
            "width": "10%"
        }],
        "responsive": true,
        "retrieve": true
    });
});

function delete()
   tbl.rows($(this).parents('tr')).remove().draw();
}


我也尝试过此方法,但结果相同:

function delete()
   $('#myTable').DataTable().rows($(this).parents('tr')).remove().draw();
}


而且我尝试包括表reinitializing但我得到一个错误

function delete() {
    var tbl = $('#myTable').DataTable({
        "bLengthChange": false,
        "bFilter": false,
        "iDisplayLength": 5,
        "columns": [{
            "width": "50%"
        }, {
            "width": "10%"
        }, {
            "width": "10%"
        }, {
            "width": "10%"
        }, {
            "width": "10%"
        }],
        "responsive": true,
        "retrieve": true
    });

    tbl.rows($(this).parents('tr')).remove().draw();
}


什么是正确的方法?

最佳答案

您的代码中有一些错别字,但我还没有看到HTML ...但是无论如何,这是一个有效的示例:http://jsbin.com/quhologaba/1/edit

代码段:

$(document).ready(function() {

    var tbl = $('#myTable').DataTable({
        "bLengthChange": false,
        "bFilter": false,
        "iDisplayLength": 5,
        "responsive": true,
        "retrieve": true
    });

  $('#myTable tbody').on( 'click', '.remove', function () {
    alert('clicked');
    console.log(tbl);
    tbl.row( $(this).parents('tr') ).remove().draw();
  } );

});

09-19 23:52