我想在用户搜索数据表时调用某些函数,包括当它们擦除搜索输入中的所有文本时(显示所有数据)。
我有以下代码:
$(tbl).on('order.dt search.dt',function() { urutkan_no(tbl); });
当用户在搜索输入中填写内容时成功触发,但是当它们删除所有文本时,事件将不再触发。
当用户清空搜索输入时(在显示整个数据之后)是否会触发任何DataTable事件?或者有任何解决方法吗?
更新
现在看来我知道发生了什么事。这是我的问题的示例代码。请试试这个:
var table = $('#example').DataTable({
});
var colors = ['red','blue','green','yellow','cyan','orange','limegreen','pink'];
$('#example').on('order.dt search.dt',function() {
console.log('search', $('.dataTables_filter input').val());
var random_color = colors[Math.floor(Math.random() * colors.length)];
$('#example tbody').find('tr').each(function(i) {
$(this).css('background-color',random_color);
$(this).find('td:first').text(1+i);
});
});
当数据表仍没有完成绘图时,过早地调用该函数。
答案 0 :(得分:0)
根据this example in the documentation,您需要的是draw.dt
事件:
var table = $('#example').DataTable();
var startTime;
table
.on( 'preDraw', function () {
startTime = new Date().getTime();
} )
.on( 'draw.dt', function () {
console.log( 'Redraw took at: '+(new Date().getTime()-startTime)+'mS' );
} );
编辑:我刚刚意识到,重新排序后也会触发此事件,可能这不是您想要的。但对我而言,这是无害的。