IE选择可见虽然其父级是隐藏的

时间:2009-12-09 16:05:21

标签: css internet-explorer-6

我有一个动态HTML文档,并且在特定时间点它有一个与此类似的标记(当然,更复杂):

<div style="display: none">
    <select><option>some text</option></select>
</div>
<div>
    Some text
</div>

我的问题是在IE 6中,即使其父级设置为display:none,仍然可以看到select。还有其他人遇到过这个问题吗?我想我记得在很久以前就看到了复选框这个问题。其他浏览器(当然)也可以使用,包括IE8。

当然,如果您尝试在IE6中查看此代码段,则不会有任何问题。这是一个错误,只是按照正确的顺序执行。

3 个答案:

答案 0 :(得分:0)

我无法重现问题,尝试使用ie6并且没有显示选择。

您可以放置​​更多代码,以包含您正在使用的j。

此外,ie6在遇到小事时往往会发出异议。

尝试添加“;”到你的CSS结束。如下所示: 没有看到你的代码,但这可能只需要制作即表现。

答案 1 :(得分:0)

虽然我不确定,但我认为我点击了this issue

答案 2 :(得分:0)

我遇到了这样的问题。对我来说,当我像这样清空时,看不见的选择框会突然变得可见:

select.empty();

我发现没有jQuery清空选择框解决了问题:

select[0].options.length = 0;

然而,这在下次调用select.val()时引入了一个新问题IE6会抛出错误“无法设置所选属性。未指定错误。”

具有讽刺意味的是,我在select.empty()调用之后通过调用select.show()找到了另一个解决方案。我猜测show()欺骗浏览器重新计算基于父级的可见性。这使它能够意识到元素首先不应该是可见的。所以这对我有用:

select.empty()

// some code to repopulate the list

select.show();