В datatable initComplete не вызывается после table.ajax.reload();

В таблице данных на initComplete я написал код. В первый раз он работает нормально, но после вызова table.ajax.reload()initComplete не работает в таблице данных.

"initComplete": function(settings, json) {
  $("#customerBids tr.cls-x-setTr").each(function() {
    debugger;
    var trId = $(this).attr('id');
    $('#' + trId + ' td').hide();
    $('#' + trId).append('<td class = "cls-x-tmpTD" colspan = "18"> </td>');
  });
},

Я добавил этот интервал, который создал проблему:

timer = setInterval(function() { 
  table.ajax.reload(null, false); 
}, 15000);
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
1
0
2 558
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Первый аргумент reload() — это ссылка на функцию обратного вызова для выполнения. Таким образом, вы можете извлечь свою логику initComplete() в отдельную функцию, которая вызывается из обоих событий. Попробуй это:

// in datatable settings:
"initComplete": foo,

// your reload logic:
timer = setInterval(function() { 
  table.ajax.reload(foo, false); // note 'foo' here
}, 15000);

// somewhere outside of your datatable definition:
function foo() {
  $("#customerBids tr.cls-x-setTr").each(function() {
    debugger;
    var trId = $(this).attr('id');
    $('#' + trId + ' td').hide();
    $('#' + trId).append('<td class = "cls-x-tmpTD" colspan = "18"> </td>');
  });
}

Другие вопросы по теме