您的位置:首页 > Web前端 > CSS

ie9崩溃现象当js设置tr元素样式为display:none

2013-02-20 16:48 561 查看
遇到一个ie9的bug:用js设置tr元素的样式为display:none 会引起ie崩溃。
查了一下,(感谢bing)得到国外的一个解决方法
然后我自己又封装了一下:

function hideTR(element)
{
    if ($.browser.msie)
    {
        if ($.browser.version == "9.0")
        {
            var po = null;
            var loopObj = null;
            for (loopObj = element; loopObj.tagName != "BODY"; loopObj = loopObj.parentNode)
            {
                if (loopObj.tagName == "TABLE")
                {
                    po = loopObj;
                    break;
                }
            }
            if (po == null) return;
            var initValue = $(po).css("border-collapse");
            $(po).css("border-collapse", "separate");
            $(element).css("display", "none");
            $(po).css("border-collapse", initValue);
        }
        else
        {
            $(element).css("display", "none");
        }
    }
    else
    {
        $(element).css("display", "none");
    }
}

以后写代码$(element).css("display","none");
就变成了hideTR(element);。
查了一下,(感谢bing,鄙视百度)得到国外的一个解决方法
然后我自己又封装了一下:

function hideTR(element) 
{ 
if ($.browser.msie) 
{ 
if ($.browser.version == "9.0") 
{ 
var po = null; 
var loopObj = null; 
for (loopObj = element; loopObj.tagName != "BODY"; loopObj = loopObj.parentNode) 
{ 
if (loopObj.tagName == "TABLE") 
{ 
po = loopObj; 
break; 
} 
} 
if (po == null) return; 
var initValue = $(po).css("border-collapse"); 
$(po).css("border-collapse", "separate"); 
$(element).css("display", "none"); 
$(po).css("border-collapse", initValue); 
} 
else 
{ 
$(element).css("display", "none"); 
} 
} 
else 
{ 
$(element).css("display", "none"); 
} 
}

以后写代码$(element).css("display","none");
就变成了hideTR(element);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: