0

我需要为每一行添加一个删除图标,并在“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”时,删除图标每次都会添加到行中。

图片。http://i.imgur.com/jH4j5tb.png

我怎样才能避免这种情况?

4

1 回答 1

1

Datatable 缓存了两件事:html(nRow节点保存在内存中,不会在每次绘制时销毁和重新创建)和数据(aData存储的,如果您修改它,您以后仍将访问修改)。

您需要检查一些表示“我已经将图标添加到该行”的状态。

例如 :

if(addDeleteButton && ($(nRow).find('.delete-icon').length == 0) ) { ... }

或者 :

if(addDeleteButton && !aData.deleteButtonAdded) {
    aData.deleteButtonAdded = true;
    ...
}
于 2013-10-01T07:53:44.847 回答