Таблица данных jQuery - Показать подробности Строка не работает после обновления данных - PullRequest
1 голос
/ 19 июня 2019

Проблема: Ссылаясь на следующую ссылку для 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');
    });
});

Работают только нечетные обновления данных.Любая помощь будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...