设法将其一起拉出来,在两个数据表之间来回移动行,但在我找不到的地方有一个小故障。核心功能就是这个。
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/
谢谢!
最佳答案
有趣,我上周刚刚为我自己的项目做了这个。以下是我注意到的似乎不对的地方:
- 您多次选择该行。只做一次。
- 您将行索引传递给
.fnDeleteRow()
。相反,传递行本身。该方法接受其中之一,并且您已经拥有对该行的引用。 - 首先删除该行,然后将数据添加到另一个表中。首先将数据添加到另一个表中,然后删除该行。我不能明确地说这会导致任何问题,但如果您先删除该行,似乎更有可能遇到某种竞争条件。
进行这些更改后您会得到:
stockTable.on('click', '.toggle', function () {
var row = $(this).closest('tr')[0];
var addRow = stockTable.fnGetData(row);
catalogTable.fnAddData(addRow);
stockTable.fnDeleteRow(row);
});
<小时/>
您可以通过使用同一对象初始化两个表并使用点击处理程序的通用版本来减少代码的冗余:
关于jquery - 数据表 jquery fnAddData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20056055/