【问题标题】:How can I set the proper width for this div?如何为这个 div 设置合适的宽度?
【发布时间】:2014-02-21 14:39:01
【问题描述】:

我正在构建一个个性化的表格,并且我想让带有固定标题的滚动条成为可能。我创建了一个 div,它将替换原始标题表并将被修复。

我做了一个简单的JS函数:

function resizeCol(numerocolonne){

var leng= $("tbody tr").length;
for(i=1;i<=numerocolonne; i++){
    var bigger=$('[value="1-'+i+'"]').width();
    $('[value="0-'+i+'"]').width(bigger);
}

}

计算列的宽度并设置假标题的宽度。一切都很好,除了我不知道如何正确排列假标题列和真实标题列。

不知道自己解释清楚了没有,所以这里提一句:

FIDDDLE

我不能让 #header div 比窗口宽。

【问题讨论】:

  • 我认为您遗漏了一些代码。你说的标题在哪里?而你的 resizeCol 函数不在你的小提琴中。
  • 好的,评论说好了,现在一切都正确了
  • 您能否更清楚地解释一下您要对标头执行的操作与实际执行的操作?
  • 我希望 div#header 准确地反映表格的标题。因此,完成此操作后,我将用 div 替换标题,并在滚动时固定标题。

标签: jquery html html-table width


【解决方案1】:

我已经让你开始了:

resizeCol(14);


function resizeCol(numerocolonne){
    $('#datatable_pagament_invisibile thead').clone().appendTo('#header');
    var $headers = $('#datatable_pagament_invisibile th');
    $headers.each(function(index, el) {
        $('#header').width($('#datatable_pagament_invisibile').width());
        //$('#header thead th').height($('#datatable_pagament_invisibile thead').height());
        $('#header th').eq($headers.index(this)).width($(this).width());
    });
}

它采用了与你正在做的不同的方法(主要是因为你做它的方式无论如何都需要类似的工作)——它克隆 thead 并将它放在另一个 div 中,然后模仿桌子的宽度和列。

Fiddle here.

您可能还对another solution that I found posted in another similar question. 感兴趣,如果适合您的情况/代码,我会选择这个。我认为这是一个更简单、更清洁的解决方案。

【讨论】:

  • 出色的解决方案。非常感谢!我想听听你对隐藏真正的thead以修复克隆的thead的意见。你会怎么做?
  • 您可以隐藏它或不理会它。如果你把它修复在正确的地方,没有人会知道它是否被隐藏。
  • 我被困在最后一步......我无法让它工作......你能帮我吗?我使用绝对定位来覆盖真实的..但我无法将其固定..
  • ty,但是我已经尝试过这种方式,但是如果您注意到,在更改页面宽度时,列会失去对齐...
  • 试试这个:jsfiddle.net/aVT7W/280——当窗口调整大小时它会调用resizeCol。编辑:也移动了一些代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-16
  • 1970-01-01
  • 2012-05-07
  • 2012-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多