0
function showlayer(layer){
var myLayer = document.getElementById(layer).style.display;
if(myLayer=="none"){
document.getElementById(layer).style.display="block";
} else { 
document.getElementById(layer).style.display="none";
}
}

我需要这段代码来关闭当前层并打开另一个。这些层存在于内容 div 中,并且嵌套了 12 层。

例如:

这是在容器(导航)的主体中,用于控制嵌套 12 深的内容容器。(我自己想出了一个主意,但最终关闭了所有层,使我的网页消失了)

<li><a href="#" onclick="javascript:showlayer('USNews')">US News</a></li>

因此,当通过上面单击标记为 US News 的导航按钮时,它会打开

现在,如果我打开了美国新闻,然后我点击说政治(第三嵌套层,我希望 USNews(第一嵌套层)关闭并且只打开政治(当然注意到政治是第三层而 USNews 是第一层)..等等..

我已经尝试过 if else 声明,但我多年来一直没有这样做,只是感到沮丧难以置信......任何帮助将不胜感激

4

2 回答 2

1

您可以循环所有图层并在之前隐藏它们。然后才显示选定的一个。

function showlayer(layer){

var Layers=document.getElementsByTagName("div");
for(i=0;i<Layers.length;i++){
    if(Layers.getAttribute("class")=="layer"){
    Layers.style.display="none";
    }
}
document.getElementById(layer).style.display="block";
}


<li onclick="javascript:showlayer('USNews')"><a href="#" >US News</a></li>
<li onclick="javascript:showlayer('UkNews')"><a href="#" >Uk News</a></li>
<li onclick="javascript:showlayer('ArNews')"><a href="#" >Ar News</a></li>

<div id="USNews" class="layer"></div>
<div id="UkNews" class="layer"></div>
<div id="ArNews" class="layer"></div>
于 2009-08-13T07:34:41.610 回答
0

与其编写原始 Javascript,不如使用库。

在 JQuery 中,您可以移动到正确的层,并相对容易地隐藏或显示它。
(可能是一行脚本 tbh。)

于 2009-08-13T07:28:54.837 回答