Настройка видимости столбцов таблиц данных

#javascript #jquery #datatables

#javascript #jquery — jquery — запрос #таблицы данных #jquery

Вопрос:

У меня проблема с настройкой видимости столбцов Datatables. Мой код устанавливает правильное значение для видимости столбца, но после этого ничего не делает, никогда не показывает «готово».
https://jsfiddle.net/s06e0d60/1 /Вот пример, который работает на JSFiddle, но каким-то образом не работает на моем компьютере

 var table = ...
var tabVis = $('.toggle-vis');

console.log("checking first checkbox");
var checked = tabVis[0].checked;

console.log("finding column");
var column = table.column(0);

console.log("assigning value");
column.visible(checked);

console.log("done");
  

Аналогичный код в другом месте работает отлично

 $(document).ready(function () {
    var table = $('#myTable').DataTable({
        scrollX: "100%",
        scrollY: '50vh',
        scrollCollapse: true,
        paging: false,
        fixedColumns: true,
        select: {
            style: 'multi'
        },
        columnDefs:
            [
                {
                    targets: [0],
                    orderData: [0, 1, 2]
                },
                {
                    targets: [1],
                    orderData: [1, 2, 0]
                },
                {
                    targets: [2],
                    orderData: [2, 0, 1]
                }

            ],

        language: {
            "url": "//cdn.datatables.net/plug-ins/1.10.12/i18n/Polish.json",
            select: {
                rows: {
                    _: "Wybrano wierszy: %d",
                    0: "Kliknij wiersz aby go zaznaczyć"
                }
            }
        }
    });

    $('.toggle-vis').on('change', function (e) {
        //e.preventDefault();
        var source = event.target || event.srcElement;

        // Get the column API object
        var column = table.column($(this).attr('dataColumn'));

        // Toggle the visibility
        column.visible(source.checked);
    });
});
  

РЕШАЕМАЯ

Я изменил функцию column().visible(x) на функцию column().visible(x, false), которая предотвращает пересчет расположения столбцов, и все волшебным образом начало работать.

Комментарии:

1. пожалуйста, предоставьте полный рабочий пример

2. Только что добавлен пример

3. @Qba05550 Что внутри DataTable({...}); ?

4. @Aaron только что добавил, что