ToggleMe脚本小问题

时间:2013-06-15 23:27:10

标签: javascript toggle

我有一个工作切换我的代码除了一个小问题,我不知道该怎么做来解决它。有人可以帮帮我吗。我在jsfiddle ... http://jsfiddle.net/ydvuN/10/

中复制了代码

问题:如果您单击选项卡1或选项卡3作为初始点击,则菜单会隐藏,然后您必须单击选项卡2才能显示备份。在初始单击之后,脚本的工作方式应该如此,在显示和隐藏菜单的选项卡之间切换。

现在,重新加载页面并点击标签2作为您的初始点击,菜单就像它应该立即工作,在显示其相应菜单的不同标签之间切换。

我不想完全隐藏菜单...我总是希望一个菜单始终显示,但是从不想要显示多个菜单。无论您先点击哪个标签,菜单都应相互切换。

我知道这可能会发生,因为我在Tab 1和Tab 3上有display: none而在Tab 2上有display: block。我这样做是因为我希望Tab 2在默认情况下显示为默认值页面加载。

任何有关纠正我的问题的帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

.style.display与仅检查项目是否显示不同。它实际上是检查HTML上的style="something"属性 - 它会覆盖您在样式表中设置的CSS。

所以 - 当你开始时,你的元素style.display = 'none'。实际上,style.display未设置。

要解决此问题,我只需将所选标签设置为style.display='block',无论它已经设置为:

    ...
    for (var i = 0; i < allIds.length; i++) {
        if (allIds[i] != a) {
            document.getElementById(allIds[i]).style.display="none";
        }
    }
    e.style.display="block";
    return true;
}