【发布时间】:2017-10-29 23:12:58
【问题描述】:
我有以下 DataTable,它调用 status_icons() 函数来用图标替换 0 和 1 值。
在第一个结果页面(在 initComplete 上)我调用 status_icons() 进行替换,然后我在 DataTables 范围外触发,以便为下一个分页结果重新执行我的函数为每个分页的 DataTable DOM 重建行为。
我得到的错误是当您单击任何分页或编号分页上的“上一个”按钮时,在当前图标上重新添加状态图标盒子。
我用图标替换值的功能
function status_icons() {
$('table tr').each(function() {
if ($(this).find('td').eq(0).text() == '1') {
$(this).find('td').eq(0).replaceWith('<i class="fa fa-3 fa-check-circle-o datatable-paid-1"></i>');
} else {
$(this).find('td').eq(0).replaceWith('<i class="fa fa-3 fa-exclamation-circle datatable-paid-0"></i>');
}
});
}
DataTable 构造 - 在 initComplete 上调用函数获取第一页和第二页结果
setTimeout(function() {
$('#invoices-table').DataTable({
responsive: true,
columnDefs: [{ orderable: false, targets: [-1, -2, -3] }],
dom: 'Bfrtip',
initComplete: function() {
status_icons() // it executes my function for the first page of results
var api = this.api();
// some irrelevant code that uses api and does not cause my issue
// ...
}
});
}, 1000);
jQuery 事件用于在每次点击 .paginate_button 时执行我的函数,因为 DataTable 重建
$(document).on('click','.paginate_button', function() {
if( !$(this).hasClass("disabled") ){
status_icons(); // it executes for the rest paginations
}
});
【问题讨论】:
标签: jquery pagination datatables