0

我有一个非常简单的问题:有没有比我创建的这个精简的 jsFiddle 示例更有效的方法来实现具有固定行和列的大表,或者有没有更好的方法来编写支持它的几行 jQuery?

在有人因为我发布与其他人相似的问题而跳楼之前,让我解释一下自己。我意识到有多个插件可以实现与我上面的示例类似的效果。但是,它们(我能找到的)都没有提供我需要的灵活性和功能。

以下是我的实现必须支持的一些注意事项:

  • 必须能够隐藏和取消隐藏整行
  • 必须支持动态高度的单元格
  • 应该(理想情况下)使用浏览器的滚动条来导航表格
  • 必须快速才能支持大表
  • 表必须能够用knockoutjs动态生成

我在实现中看到的主要问题是它在 Chrome 和 IE 中滞后。我在示例中提供的表格很难注意到,但左列和顶行需要一点时间才能“赶上”表格的其余部分。当表很大并且在后台运行其他 javascript 时,这个问题变得更加明显。

那么,鉴于我的警告,有没有更好的方法来实现这一点?

4

2 回答 2

1

您可以通过更改以下内容来提高性能:

var offset = $(this).next().offset();
        $(this).offset(offset);
        $(this).css('left', '0');
        $(this).height($(this).next().height());

对此:

        var $this = $(this)
        var offset = $this.next().offset();
        $this.offset(offset);
        $this.css('left', '0');
        $this.height($this.next().height());

使用变量比一遍又一遍地连续包装同一个对象要快。

于 2012-07-07T16:19:44.127 回答
0

这个 jQuery 插件非常适合您的要求:http ://www.jtable.org/Demo

于 2012-07-06T12:15:57.213 回答