javascript - 添加到其 DOM ie8 后,Html 表不会重绘

标签 javascript html internet-explorer dom

当我使用 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/

相关文章:

html - 透明的 png 背景在 IE7 中产生奇怪的效果(但仅在某些情况下)

php - 如何更改帖子缩略图的图像宽度/高度属性?

javascript - 设计顺序 : Firefox, IE,还是两者兼而有之?

javascript - 检查元素的一部分是否在视口(viewport)中

javascript - Joi 自定义验证

html - 用 LESS 变量覆盖 navbar-inverse 样式

JavaScript 与 ajax 在 FF 中有效,但在 IE 中无效

javascript - 在鼠标悬停时更改 div 背景图像并单击单独的位置

javascript - polymer-textarea 在我看来应该出现时没有出现

javascript - div比例以保持纵横比