Проблема: Ссылаясь на следующую ссылку для jQuery DataTable, отлично работает при нажатии значка + (т. Е. Отображаются подробности строки), но когда данные обновляются во 2-й раз, они не работают после этого.
Главное условие:
if (row.child.isShown()) {
...
} else {
...
}
Учебник, которому я следую, можно найти здесь .
Мои наблюдения - я обнаружил, что когдая обновляю данные 2 раза и нажимаю на значок +, они выполняются как странно, так и иначе.Т.е. он показывает строку и сразу скрывает строку.
В третий раз, когда я обновляю данные и нажимаю на значок +, он отлично работает по нажатию значка +, выполняя if-else-if (все 3 в console.log),
Когда яобновите данные в 4-й раз и нажмите на значок +, это не работает, после выполнения if-else-if-else (4 раза в журнале).
var detailRows = [];
$('#alertTable tbody').on('click', 'tr td.details-control', function (e) {
e.preventDefault();
var tr = $(this).closest('tr');
table = $('#alertTable').DataTable();
var row = table.row(tr);
var idx = $.inArray(tr.attr('id'), detailRows);
if (row.child.isShown()) {
console.log('True...');
tr.removeClass('details');
row.child.hide();
detailRows.splice(idx, 1);
} else {
console.log('False...');
tr.addClass('details');
row.child(format(row.data())).show();
if (idx === -1) {
detailRows.push(tr.attr('id'));
}
}
});
table.on('draw', function (e) {
e.preventDefault();
$.each(detailRows, function (i, id) {
$('#' + id + ' td.details-control').trigger('click');
});
});
Работают только нечетные обновления данных.Любая помощь будет принята с благодарностью.