jQuery数据表在被隐藏时初始化时会被破坏

时间:2014-07-28 19:15:31

标签: twitter-bootstrap jquery-datatables

嗯,标题不太明确,但我真的找不到一些简单的方法来解释这个问题。

使用jQuery.datatable,我在单击bootstrap面板时生成表 - 折叠。事情就是弄乱了“观点”。一张图片胜出千言万语:

https://docs.google.com/file/d/0ByzbHcAxmCyvbXVVNTNYUXE1Qms/edit

如果我打开或调整浏览器控制台的大小,那么视图就会刷新并修复它,我猜这只是某种奇怪的渲染问题。但我不知道如何解决它(不,要求用户打开控制台不是解决方案^^)

无论如何,你知道如何“刷新”页面,任何解决方法吗?

顺便说一下,如果你找到一个更好的标题&标签,随意!

2 个答案:

答案 0 :(得分:2)

我找到了解决方法。 问题是,如果表格在初始化时被隐藏,则表格无法正确显示。诀窍是使用JS而不是CSS来隐藏表,因为一旦页面加载使用$(function(){}); ,就会应用JS。因此,如果您在之前初始化表格以便在显示它时将其隐藏,那么它将被正确显示。订单很重要!

答案 1 :(得分:2)

当可折叠面板为recalc()时,您可以对列进行响应shown ...

ordered_keys = [t[0] for t in t1]
a = {t[0]:t[1:] for t in t1} # {'a': (3, 4), 'c': (4, 5), 'b': (3, 4)}
b = {t[0]:t[1:] for t in t1} # {'a': (4, 6), 'c': (3, 4), 'b': (3, 6), 'd': (4, 5)}
l = list()
for key in sorted(ordered_keys):
    try:
        l.append(diff_unique(a[key][1],b[key][1]))
    except KeyError:
        l.append(0) # default value
return l