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 の深さでネストされたコンテンツ コンテナーを制御するコンテナー (ナビゲーション) の本体にあります。(私は自分でアイデアを思いつきましたが、最終的にすべてのレイヤーを閉じて、私のWebページが消えてしまいました)

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

したがって、USニュースとマークされたナビゲーションボタンが上記でクリックされると、それが開きます

ここで、US News を開いて Politics (3 番目のネストされたレイヤー) をクリックすると、USNews (最初のネストされたレイヤー) を閉じて、Politics のみを開きます (もちろん、Politics は 3 番目のレイヤーであり、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 の 1 行。)

于 2009-08-13T07:28:54.837 に答える