<div style="overflow: auto;">
<table>
<tbody>
/// lots of rows
</tbody>
</table>
</div>
和javascript片段:
input = $(document.createElement("input"));
input.attr("type", "text");
input.attr("value", $.trim(div.html()));
TD.prepend(input);
这在firefox中运行得很好,但拒绝在IE8中运行。一种解决方法是强制重绘,但我似乎无法找到一种方法。
我认为ie8在怪癖模式下呈现,但它在ie8或quirks模式下都不起作用。
[编辑]
function forceIERedraw() {
if ($.browser.msie) {
obj = getThing();
obj.scrollTop = obj.scrollTop - 1;
obj.scrollTop = obj.scrollTop + 1;
}
}
这样可行,但当然会使屏幕震动得如此轻微。可怕的黑客攻击,但至少你可以看到我添加到dom的东西。
答案 0 :(得分:1)
隐藏和显示正文通常适用于像你这样的问题:
input = $(document.createElement("input"));
input.attr("type", "text");
input.attr("value", $.trim(div.html()));
TD.prepend(input);
document.body.style.display = 'none';
document.body.style.display = 'block';
答案 1 :(得分:1)
今天我遇到了一些类似的问题,通过重新编写div的整个html来解决它。后来我在这里找到了你的问题......
让我们说你的div有一个身份stupiddiv
现在你做这样的事情:
$('#stupiddiv').html($('#stupiddiv').html());
在追加表格之后......如果你有小桌子那会很有用,但是如果你有大桌子,我想这会花费很多时间......
答案 2 :(得分:-1)
原来问题是特定于我正在工作的网站(10年前那个。)和渲染即怪异模式。基本上整件事情都是一团糟,这是页面上各种其他问题的副作用。