в datatable initComplete не вызывается после table.ajax.reload (); - PullRequest
1 голос
/ 28 мая 2019

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

"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);

1 Ответ

0 голосов
/ 28 мая 2019

Первый аргумент 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>');
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...