我的网站上有几个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上它仍然是问题。
答案 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。( '显示:无');