javascript - 将单元格宽度复制到固定位置克隆表

标签 javascript jquery css html-table

通过概括 this SO answer 中的代码,我创建了一个小的 jQuery 插件,可以很容易地在任何表格上设置滚动标题 - 也就是说,当您向下滚动时,表格标题通常会在可 window 口之外,克隆标题固定在窗口的顶部,以便您可以看到哪些列是哪些。一切正常,但我遇到的问题是我无法让克隆表和原始表之间的列宽完美匹配。

我创建了一个 jsFiddle 来演示问题 here .它的要点是我使用以下循环将单元格宽度从父表复制到克隆表:

$("#tbl1").find('tr').first().children().each(function(i, e)
{
    $($("#tbl1_clone").find('tr').children()[i]).width($(e).width());
});

这是必要的,因为克隆表只包含父表的表头;它没有任何内容,因此如果没有这一步,它的列宽将与父表的列宽不同。然而,这个循环并不能正常工作。克隆表格中的单元格宽度总是相差几个像素。这在 IE8 和 Chrome 中都会发生(可能还有其他的,虽然我没有测试过它们。)

我完全不知道如何解决这个问题。请查看the jsFiddle ,因为它比我更好地解释了问题。

可能值得注意的是,当克隆表的位置固定时,相同的代码似乎也能正常工作。但是,这对我没有用,因为我需要修复它。

最佳答案

出于某种原因,您克隆的表上的宽度属性正在抛出计算。我不确定为什么,但如果你使用:

$("#tbl1_clone").removeAttr('style');

在您的 jquery 代码末尾,例如 here , 它似乎有效。

关于javascript - 将单元格宽度复制到固定位置克隆表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5437879/

相关文章:

javascript - 仅在滚动过去元素 javascript 后触发事件

javascript - XPages CSJS 被执行,而 SSJS 不被执行

javascript - 在 Dropzone 中添加现有图像文件

javascript - JavaScript 类和 jQuery 对象之间的循环依赖

javascript - $.ajax with auth 在 Safari 中默默地失败(jQuery 2.1.3)

html - 应用于 td 的宽度属性

javascript - 为什么垂直滚动条总是可见

jquery - 如何在 JSF 中创建选择列表?尝试使用 JS/jQuery 移动项目,但提交错误为 "Validation Error: Value is not valid"

javascript - 检测 HTML 元素的回流或移动?

javascript - 如何制作带有图像的自定义复选框?