こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ツリーメニューを2個つづけると

<script type="text/JavaScript">
<!--
function treeMenu(tName){
tMenu = document.getElementById(tName).style;
tMenu.display=(tMenu.display=='none')?"block":"none";
}
//-->
</script>
</head>
<body>
<img src="icon.gif">
<font color="FF6600"><a href="JavaScript:treeMenu('treeMenu1')">GENSUI</a>
<ul id="treeMenu1" style="display:none;margin-top:0px;">
<a href="a.html" target="right">1</a><br>
<a href="b.html" target="right">2</a></ul>

ここまでで1つめ。下から2つめ

<script type="text/JavaScript">
<!--
function treeMenu(tName){
tMenu = document.getElementById(tName).style;
tMenu.display=(tMenu.display=='none')?"block":"none";
}
//-->
</script>
</head>
<body>
<img src="newicon.gif">
<font color="FF6600"><a href="JavaScript:treeMenu('treeMenu1')">ABYSS</a>
<ul id="treeMenu1" style="display:none;margin-top:0px;">
<a href="a.html" target="right">3</a><br>
<a href="b.html" target="right">4</a></ul>


こうすると、2つめの【ABYSS】をクリックすると上の【GENSUI】のツリー『1』『2』がでてきます。(GENSUIを押したときと同じ状態になる)
どうすればちゃんと【ABYSS】をクリックして『3』『4』がでてくれますか?

投稿日時 - 2006-12-02 12:24:26

QNo.2575504

すぐに回答ほしいです

質問者が選んだベストアンサー

誤記(</head>が2つあるとか、<body>が2つあるとか)が山のようにあって、マトモに動くとは思えないけど、一応。

<a href="JavaScript:treeMenu('treeMenu1')">GENSUI</a>

<a href="JavaScript:treeMenu('treeMenu1')">ABYSS</a>
で、treeMenuの引数が同じになってるので、どっちも「1」「2」が出る。

と言うか、これは「GENSUIもABYSSも、最初に見付かったtreeMenu1のidが付いたulタグの選択肢を使いなさい」と指定している。判りやすく言えば「どっちも同じ選択肢を使え、と指定している」って事。

JavaScript:treeMenu('treeMenu1')
<ul id="treeMenu1"
の2つの「treeMenu1」意味をちゃんと理解してないのが原因。

JavaScript:treeMenu('ahoka_anta')
って書いてあったら、これは「ulタグのidオプションに"ahoka_anta"と指定しているツリー選択肢を使いなさい」って意味になる。なので、
<ul id="ahoka_anta">
<a href="a.thml">あほです</a><br>
<a href="b.thml">あほちゃいまんねん</a></ul>
と書いてあれば「あほです」と「あほちゃいまんねん」が出る。

別々のツリーで別々の選択肢を出したいなら
<a href="JavaScript:treeMenu('ahoka_anta')">アフォですか?</a>
<ul id="ahoka_anta">
<a href="a.thml">あふぉ言うな</a><br>
<a href="b.thml">あほちゃいまんねんパーでんねん</a></ul>
<a href="JavaScript:treeMenu('anta_baka')">アンタ馬鹿?</a>
<ul id="anta_baka">
<a href="a.thml">アスカかよ</a><br>
<a href="b.thml">レイの方が好きだ</a></ul>
と、JavaScript:treeMenuの引数とulタグのidオプションを、1対1対応で一致させましょう。

それ以前に、</head>、<body>タグの意味を勉強しよう。このタグ、どっちも「1つのhtmlソースの中に、1つしか書いてはいけない。2個以上書いた時は動作不定」って仕様になってる。

つまり、
<script type="text/JavaScript">
から
</script>
までは</head>タグの前に書かないといけないから、これらも2ヶ所には書けないって事。だって、</head>が1つしか存在出来ないなら「</head>タグの前」も1つしか存在しない。

ツリーメニューに手を出すのは半年ほど早いと思われるので、半年くらいかけてhtmlの基礎を習得し終ってからでも遅くないと思いますよ。

投稿日時 - 2006-12-02 13:07:36

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問