#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 только что добавил, что