当我使用 jquery 向它添加输入时,IE 通过不重绘表而让我对一个大表产生错误。当我向上或向下滚动表格时,它会强制重绘/更新,否则它不会正确呈现输入。
<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 在 quirks 模式下呈现,但它在 ie8 或 quirks 模式下都不起作用。
[编辑]
function forceIERedraw() {
if ($.browser.msie) {
obj = getThing();
obj.scrollTop = obj.scrollTop - 1;
obj.scrollTop = obj.scrollTop + 1;
}
}
这可行,但当然会使屏幕轻微抖动。被黑得很厉害,但至少你可以看到我添加到 dom 中的东西。
最佳答案
隐藏和显示 body 通常可以解决像您这样的问题:
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';
关于javascript - 添加到其 DOM ie8 后,Html 表不会重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3768291/