代码之家  ›  专栏  ›  技术社区  ›  erikkallen

IE选择可见,尽管它的父级是隐藏的

  •  0
  • erikkallen  · 技术社区  · 15 年前

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

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

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

    当然,如果您尝试只查看IE6中的这个片段,就不会有问题。这是一个错误,它只是由按正确的顺序操作触发的。

    3 回复  |  直到 14 年前
        1
  •  0
  •   Gui Andrade    15 年前

    我无法重现问题,在IE6上尝试过,但它没有显示选择。

    您是否可以放置更多的代码,包括您正在使用的JS?

    此外,当IE6遇到小事情时,它会发出嘶嘶声。

    尝试在CSS结尾添加“;”。按以下规定: 还没有看到您的代码,但这可能是使IE行为正常所需的全部。

        2
  •  0
  •   erikkallen    15 年前

    虽然我不确定,但我想我击中了 this issue

        3
  •  0
  •   Code Commander    14 年前

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

    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();