Javascript 隐藏列的datatables响应集类
我正在尝试为datatables中的一个单独列设置类名。问题是datatables响应扩展隐藏的所有列都没有应用该类。我正在寻找解决方法/修复方法 你甚至可以在他们的一个例子中看到: 非隐藏的Javascript 隐藏列的datatables响应集类,javascript,jquery,html,css,datatables,Javascript,Jquery,Html,Css,Datatables,我正在尝试为datatables中的一个单独列设置类名。问题是datatables响应扩展隐藏的所有列都没有应用该类。我正在寻找解决方法/修复方法 你甚至可以在他们的一个例子中看到: 非隐藏的薪资列使用桌面类 $('.desktop').length; 12 $('.none').length; 0 隐藏extn列使用none类 $('.desktop').length; 12 $('.none').length; 0 编辑: 自2016年以来,这方面似乎一直存在一个悬而未决的问题
薪资
列使用桌面
类
$('.desktop').length;
12
$('.none').length;
0
隐藏extn
列使用none
类
$('.desktop').length;
12
$('.none').length;
0
编辑:
自2016年以来,这方面似乎一直存在一个悬而未决的问题
不过,对于任何解决办法的想法,我们仍然非常感激
下面是一个JSFIDLE,它显示了我所说的内容
水平收缩显示时,
salary
列将隐藏。当salary
列被隐藏并展开时,该列不再为黄色。因为如果类为none
,则DataTables会将其从表中删除并显示长度:0
您必须更改类,例如
{“data”:“extn”,类名:“hiddenColumn”}
并根据MichałB的代码添加cssdisplay:none
这是一个解决方案
HTML
Javascript
let dataSet = [
["Tiger Nixon", "System Architect", "Edinburgh", "5421", "$320,800"],
["Garrett Winters", "Accountant", "Tokyo", "8422","$170,750"],
["Ashton Cox", "Junior Technical Author", "San Francisco", "1562", "$86,000"],
["Cedric Kelly", "Senior Javascript Developer", "Edinburgh", "6224", "$433,060"],
];
let columnDefs = [{
title: "Name"
}, {
title: "Position"
}, {
title: "Office"
}, {
title: "Extn.",
className: "customColumn"
}, {
title: "Salary",
}];
let myTable = $('#example').DataTable({
data: dataSet,
columns: columnDefs,
responsive: true,
}).on( 'responsive-display', function ( e, datatable, row, showHide, update ) {
if(typeof row.selector.rows[0] !== 'undefined'){
$(row.selector.rows[0].nextSibling).find('li[data-dt-column="3"]').addClass('customColumn');
}
}).on('responsive-resize',function( e, datatable, columns ){
$(columns).find('li[data-dt-column="3"]').addClass('customColumn');
});
此解决方案仅在默认情况下要手动隐藏列时有效。如果datatables responsive检测到内容不适合屏幕,并尝试自动隐藏列,则永远不会应用
hiddenColumn
类$('.hide')。长度返回12,其不可见形式为“.none”。您链接了一个imageYes,只是为了显示该表有响应,它不显示带有“hide”类和$('.hide')的列。长度返回12。因为这就是你的意思?我用JSFIDLE编辑了我的文章。我希望工资栏保持黄色,即使它是“隐藏”的,然后通过单击展开按钮再次显示。