1

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

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

现在,重新加载页面并单击 Tab 2 作为您的初始单击,菜单的工作方式就像它应该立即运行一样,在显示其相应菜单的不同选项卡之间切换。

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

我知道这可能会发生,因为我有display: none在选项卡 1 和选项卡 3display: block上以及选项卡 2 上都有。我这样做是因为我希望选项卡 2 在页面加载时显示为默认值。

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

4

1 回答 1

1

.style.display与仅检查项目是否显示不同。它实际上是在检查style="something"HTML 上的属性——它会覆盖您在样式表中设置的 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;
}
于 2013-06-15T23:37:39.817 回答