数据表切换列可见性延迟/影响

时间:2016-04-11 21:15:10

标签: javascript jquery datatables

DR1213上的教程非常清楚:

在我告诉Datatables我正在谈论哪一栏时,我只是把拨动开关:

column.visible( ! column.visible() );

或者,在更完整的路上,我可以写:

if ( column.visible() === true ) {
    column.visible( false );
  } else {
    column.visible( true );
  }

有没有办法放置某种"计时"对此,可能是因为列缓慢消失,而不是仅仅消失/重新出现?

我还没有找到任何关于此的文档。

1 个答案:

答案 0 :(得分:1)

我绝对不建议淡化一个专栏。它非常难看,需要永远。最后的崩溃仍将发生。

无论如何,我使用简单的jQuery在datatables之外完成了这个。基本上,你保持你的html相同,但你使用常规的jQuery来发生事情而不是数据表。这是一个例子:

 $('a.toggle-vis').on( 'click', function (e) {
   var column = $(this).attr("data-column") - 1;

   $('.yourDataTable td:nth-child('+column+'), .yourDataTable th:nth-child('+column+')'  ).fadeOut();

   return false;
 }

虽然,我建议不要使用:nth-child。如果您通过循环生成数据表,我只需在每个列中添加class="column_#"并使用jQuery来获取它。 (#是列的编号)

编辑:添加settimeout示例

if ( column.visible() === true ) {
    setTimeout(function(){
      column.visible( false );
    }, 500); //delays the function with 0.5 seconds
  } else {
    column.visible( true );
  }