我正在fnRowCallback中的datatable中进行一些后期处理。但重绘表时不会调用它们。 (即,当从UI调用某些事件,如更改显示的行数时,表格会重新绘制)
$(document).ready(function () {
var oTable = $('#data').dataTable({
"bJQueryUI": true,
"bProcessing": true,
"bServerSide": true,
"bSort": false,
"sAjaxSource": "query.php",
"sPaginationType": "full_numbers",
"aoColumns": [
null,
null,
null,
],
"fnRowCallback": function (nRow, aData, iDisplayIndex) {
$(nRow).attr("id", aData[4]);
return nRow;
},
"fnDrawCallback": function( oSettings ) {
// How do I call fnRowCallback here?
// losing post processing because it is not being called after a redraw
}
});
答案 0 :(得分:2)
我认为您尝试通过$(nRow)
中的jquery查找实际行是不行的。 nRow
包含整行。你应该只是作为jquery选择器(第二个参数)的命名空间来限制它到这个特定的行。
像这样:
$( “选择器”,nRow).jqueryaction()
这对我有用:
HTML:
<tr>
<td>a</td>
<td class="boldmetight">b</td>
</tr>
<tr>
<td class="boldmetight">c</td>
<td>d</td>
</tr>.. etc
带有rowcallback的表定义,用粗体表示每个具有特定类的单元格(例如):
var otable = $("#datatable").dataTable({
"fnRowCallback": function(nRow, aData, iDisplayIndex) {
$('.boldmetight', nRow).html('<b>' + $('.boldmetight', nRow).text() + '</b>');
}
});
看看这个工作Plunker