我有一个我正在使用的数据表,并且我基本上试图丢弃要在某些条件满足时创建的行(具体来说,如果与之关联的对象已被删除)
我一直在使用fnCreatedRow函数,我的最新尝试看起来像这样:
"fnCreatedRow": function( nRow, aData, iDataIndex ) {
var row = $(nRow);
var obj_id = aData.id;
var obj = objects[obj_id];
if (!obj) //Associated object is gone, so I want to discard the row
{
theDataTable.fnDeleteRow(nRow);
}
else
{/*Various things with rows I don't want to discard*/}
}
这没用,行仍然像往常一样出现。是否有某种方法可以在创建时丢弃该行?或者一些有效的方法来确保它在创建后立即被删除?
答案 0 :(得分:0)
目前,我似乎通过将theDataTable.fnDeleteRow(nRow);
置于setTimeout
内(延迟1毫秒)解决了我的问题。这看起来有点像我想要的那么粗糙,特别是因为我一直在处理JS中的竞争条件引起的问题,而不是我最近想要的。我仍然非常愿意接受更好的解决方案。