Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 隐藏列的datatables响应集类_Javascript_Jquery_Html_Css_Datatables - Fatal编程技术网

Javascript 隐藏列的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年以来,这方面似乎一直存在一个悬而未决的问题

我正在尝试为datatables中的一个单独列设置类名。问题是datatables响应扩展隐藏的所有列都没有应用该类。我正在寻找解决方法/修复方法

你甚至可以在他们的一个例子中看到:

非隐藏的
薪资
列使用
桌面

$('.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的代码添加css
display: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编辑了我的文章。我希望工资栏保持黄色,即使它是“隐藏”的,然后通过单击展开按钮再次显示。