javascript – Chrome / Webkit内嵌块刷新问题

前端之家收集整理的这篇文章主要介绍了javascript – Chrome / Webkit内嵌块刷新问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我发现的问题如下:

情况:我有整体div有内嵌块显示.里面是两个内置块显示的元素.

然后我添加(感谢JavaScript)a< br />两个元素之间.第二个是下一行,这是正常的行为.

越野车部分:< br />然后删除(JavaScript再次)和…显示不更改.看来整个div的框不重新计算.最后我有两个类似的标记,不会出现相同的方式(这有点问题,不是这样).

它在Firefox上工作正常(似乎是基于webkit的,因为Android浏览器的行为方式相同).所以我的问题是,有没有使用将会改变DOM的方法解决方法?使用的库是jQuery.

测试用例here.

编辑:根据duri的建议,我在webkit bugzilla中填写了一个错误报告,这是here.但是我仍在寻找解决方法;

解决方法

方式我发现:从整体DIV中删除所有的孩子,然后追加所有除了BR:
function removeBr(){
    var ahah=document.getElementById("ahah");
    var childs=[],child;
    while(child=ahah.firstChild) {
        if(!child.tagName||child.tagName.toLowerCase()!=='br')
            childs.push(child);
        ahah.removeChild(child);
    }
    for(var i=0;i<childs.length;i++)
        ahah.appendChild(childs[i]);
}

http://jsfiddle.net/4yj7U/4/

其他变体:

function removeBr(){
    var node=$("#ahah")[0];
    node.style.display='inline';
    $("#ahah").children("br").remove(); 
    setTimeout(function(){node.style.display='';},0);
}
原文链接:https://www.f2er.com/js/152270.html

猜你在找的JavaScript相关文章