Datatable jquery fnAddData

时间:2013-11-18 19:23:54

标签: jquery datatables

管理将这一点拉出来,在两个数据表之间来回移动行但是在我找不到的地方有一个小故障。核心功能就是这个。

    stockTable.on('click', '.toggle' ,function() {
    var $row = $(this).closest('tr');
    var addRow = stockTable.fnGetData($(this).closest('tr')[0]);
    stockTable.fnDeleteRow($row.index());
    catalogTable.fnAddData(addRow);
});

事情是“有时”反复点击按钮时发送错误的行!

请看一下,确保随机反复点击按钮。 http://jsfiddle.net/NpT26/3/

谢谢!

1 个答案:

答案 0 :(得分:8)

有趣的是,我只是上周为我自己的项目做了这个。以下是我注意到的内容:

  • 您多次选择该行。只做一次。
  • 您将行索引传递给.fnDeleteRow()。相反,传递行本身。该方法接受,并且您已经有对该行的引用。
  • 首先删除该行,然后将数据添加到另一个表中。首先将数据添加到另一个表,然后删除该行。我不能肯定地说这会导致任何问题,但如果你先删除这行,似乎更有可能遇到某种竞争条件。

进行这些改变:

stockTable.on('click', '.toggle', function () {
    var row = $(this).closest('tr')[0];
    var addRow = stockTable.fnGetData(row);
    catalogTable.fnAddData(addRow);
    stockTable.fnDeleteRow(row);
});

jsfiddle.net/NpT26/13


您可以使用相同的对象来初始化两个表,并使用点击处理程序的通用版本来减少代码的冗余:

jsfiddle.net/NpT26/14