我需要为每一行添加一个删除图标,并在“fnRowCallBack”中使用下面的代码。
"fnRowCallback": function(nRow, aData, iDisplayIndex) {
if(addDeleteButton) {
var deleteIcon = $("<div>").addClass("ui-icon ui-icon-trash");
$("<td>").addClass("delete-icon").appendTo(nRow).html(deleteIcon);
}
}
但是当使用“fnFilter”时,删除图标每次都添加到行中。
图像。
我该如何避免这种情况?
答案 0 :(得分:1)
Datatable缓存两件事:html(nRow
节点保存在内存中,没有销毁并在每次绘制时重新创建),数据(aData
存储,如果你修改它,你仍然会在以后访问修改。)
您需要检查某些状态,表示“我已将图标添加到此行”。
例如:
if(addDeleteButton && ($(nRow).find('.delete-icon').length == 0) ) { ... }
或:
if(addDeleteButton && !aData.deleteButtonAdded) {
aData.deleteButtonAdded = true;
...
}