在show上重绘一个隐藏的HTML表

时间:2011-11-23 21:38:46

标签: javascript jquery html

在页面加载时,我有一个包含在隐藏div中的表。该表只有页眉和页脚定义,但没有数据行。使用Ajax动态加载的数据行。

用户单击按钮后,将显示包含表(和其他静态文本)的隐藏div。我的问题是表格布局看起来不是很好,因为我使用的是宽度= 100%,并且在开始时表格是隐藏的,帽子的宽度是0开始的。

理想情况下,我想知道一旦div可见,是否有办法强制重绘表格?

3 个答案:

答案 0 :(得分:1)

我假设你有类似的代码:

success: function (response) {
    $('mytable').html(response).show();
}

为什么不在show方法之后设置宽度,如下所示:

success: function (response) {
    $('mytable').html(response).show();
    $('mytable').css('width', '100%');
}

答案 1 :(得分:0)

我的建议是用CSS设置表格样式。我使用了两种策略:

  1. 我使用firebug来获得正确的样式,然后将其放在样式表中。
  2. 将表格与dumby数据放在一起,并使用样式表对其进行样式设置..然后再移动它。

答案 2 :(得分:0)

您可以clone()该元素,然后删除()它,然后插入复制的克隆并显示它。

您可以clone(true, true)使用两个参数重新插入时重新绑定所有事件。如果这不起作用,John Reisig本身还有另一种方式:What is the most efficient way to deep clone an object in JavaScript?当clone()不够时,这对我有用。从第一个答案中使用jQuery元素作为“oldObject”。

示例:

// Deep copy
var newObject = jQuery.extend(true, {}, $('#tableToClone'));
$('#tableToClone').remove();
$('#divArroundTable').html(newObject);