Div没有正确隐藏在IE中

时间:2009-05-03 20:13:16

标签: javascript jquery internet-explorer html hide

我的网站上有几个div - 在加载时我希望隐藏其中一些,有些显示。我隐藏了那些我不想要的东西:

$(".divToHide").hide();

它适用于Chrome,Firefox,IE8和Opera ...它不在IE6中(我还没有测试过以前的版本......) - 当我加载页面时,所有div都被正确隐藏。当我单击一个使其中一个可见的链接时,它会正确显示。问题显示当我点击一个应该隐藏第一个div并显示另一个div的不同链接时。第一个div的文本被隐藏,但图像停留并阻碍新显示的div。我很确定这是一个错误 - 当我放大或缩小页面时,应该隐藏的div突然消失 - 它们只有在我加载页面时才可见。

有办法吗?

编辑:我正在使用jQuery v1.3.2

编辑:不幸的是,使用addClass添加表示display: none的css类的解决方案并不真正起作用 - 它似乎一开始就做了,但问题是还在那里。

更新:我写的js文件可以找到here,而html here。我遇到的问题是,当你从一个投资组合转到另一个投资组合时,第一个图像会停留在那里阻碍下一个图像,即使它应该被隐藏(下面的文本正确更改)。当您尝试放大/缩小页面时,错误消失 我曾经使用$("#divId").hide()隐藏所有投资组合,但正如下面所指出的,我现在使用$(".classToHide").hide()

更新:问题在IE8上得到解决 - 我忘了包含标准模式声明......但是,在IE6上它仍然是问题。

5 个答案:

答案 0 :(得分:3)

您是否使用ID选择器隐藏了多个div?

尝试将这些div设为“divToHide”类,然后使用:

$(".divToHide").hide();

也许IE8以与其他浏览器不同的方式处理重复的id ..

答案 1 :(得分:2)

只是一个想法:你没有使用旧版(IE8之前版本)的jQuery,是吗?

编辑:不,grycz正在使用当前版本。

答案 2 :(得分:2)

编辑:简化为使用toggleClass()

您可以尝试手动执行此操作,例如切换名为“hidden”的css类。它可能看起来像这样:

function myToggle(element_id)
{
    mydiv = $('#' + element_id);
    mydiv.toggleClass("hidden");;
}

你的css文件会有:

.hidden
{
    display:none;
}

我没有对此进行过测试,但这是我想你想要考虑的一种解决方法,如果这确实是jQuery / IE8中的一个错误。

答案 3 :(得分:0)

你确定在页面加载时甚至调用了hide()函数调用吗?尝试在该函数调用之前放置alert('hi'),并查看是否在IE8中发生了这种情况。

答案 4 :(得分:0)

尝试

$( “#divToHide”)的CSS。( '显示:无');