Javascript “如何保留复选框”;勾选“;在数据表中,上下移动行

Javascript “如何保留复选框”;勾选“;在数据表中,上下移动行,javascript,jquery,html,datatables,Javascript,Jquery,Html,Datatables,我有一个dataTable,其中每一行都有一个复选框和上下按钮来移动行。但如果我选中一个复选框,然后移动该行,复选框将变为未选中状态 如何防止此事件并保持复选框处于选中状态 { name: 'name', data: 'name', title: 'Name', searchable: true, sortable: false, render: function (data, type, full, meta) { if (type === 'display') {

我有一个dataTable,其中每一行都有一个复选框和上下按钮来移动行。但如果我选中一个复选框,然后移动该行,复选框将变为未选中状态

如何防止此事件并保持复选框处于选中状态

{ name: 'name',
  data: 'name',
  title: 'Name',
  searchable: true,
  sortable: false,
  render: function (data, type, full, meta) {
    if (type === 'display') {
        var $span = $('<span></span>');
       $('<input type="checkbox">').appendTo($span);
       return $span.html();
    }
    return data;
  }
},
{name:'name',
数据:“名称”,
标题:“姓名”,
可搜索:正确,
可排序:false,
呈现:函数(数据、类型、完整、元){
如果(类型==‘显示’){
变量$span=$('');
$('')。附录($span);
返回$span.html();
}
返回数据;
}
},

这是我的代码:

您可以将状态保存在变量中,绘制表格后可以选中并更新复选框的状态

拨弄


不能replicate@brk问题是什么?还要为表添加HTML代码。@Rusty的整个代码都在JSFIDLE上。
function moveRow(row, direction) {
    var index = table.row(row).index();

    var order = -1;
    if (direction === 'down') {
       order = 1;
    }

    var data1 = table.row(index).data();
    data1.order += order;
    var data1Checked = $(table.row(index).node()).find('input[type=checkbox]').prop('checked');

    var data2 = table.row(index + order).data();
    data2.order += -order;
    var data2Checked = $(table.row(index + order).node()).find('input[type=checkbox]').prop('checked');

    table.row(index).data(data2);
    table.row(index + order).data(data1);

    table.page(0).draw(false);
    $(table.row(index + order).node()).find('input[type=checkbox]').prop('checked', data1Checked);
    $(table.row(index).node()).find('input[type=checkbox]').prop('checked', data2Checked)
}