- ベストアンサー
折りたたみ(ツリー式?)メニューについて教えて下さい。
本を参考にして作ってみて、いちおう折りたたみができるようにはなったのですが一つ困っている事があります。 フレームを使って左右にページを分けて、左側をメニューにしています。その左側の折りたたみメニューなのですが項目をクリックして右側にページを表示させると、元に戻ってしまいます。私は一度開いたら自分でもう一度クリックするまで勝手に折りたたまれないメニューを作りたいのです。 現時点では<HEAD>部分に↓これが入っていて <script language="JavaScript"><!-- vType = ["none","block"]; function tblMenu(tOBJ,dType) { Menu = tOBJ.tBodies[0].style; Menu.display = vType[Menu.display.indexOf("none") + 1]; } // --></script> <body>の部分に↓これを入れています <table border="0" onClick="tblMenu(this)"> <thead><tr><th align="left"> <img src="****.gif"></th></tr></thead> <tbody style="display:none"> <tr><td><a href="**.html" target="body">項目</a></td></tr> ・ ・ ・ こんな具合なのですが、これのどこかを直したら勝手に折りたたまれないようになりますか? もしくは、自分でクリックするまで勝手に折りたたまれたりしない折りたたみメニューの作り方をご存知の方がいましたら是非教えて下さい。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
なぜリンクをクリックすると折りたたまれたかというと、 onClickがテーブルについているので、 開いたメニューをクリックするとテーブル内をクリックされたと同義なので、メニューが折りたたまれてしまうという、ある意味当然の動作をしたのですね。 で、onClickをそのまま<th>につけるとエラーになったりするんですね。 で、いろいろやった結果 <script language="JavaScript"> <!-- vType = ["none","block"]; function tblMenu(tOBJ) { Menu = document.all[tOBJ].style; Menu.display = vType[Menu.display.indexOf("none") + 1]; } // --> </script> </head> <table border="0"> <thead><tr><th align="left" onClick="tblMenu('tbm')"> <img src="****.gif"></th></tr></thead> <tbody id='tbm' style="display:none"> <tr><td><a href="tb.htm" target="main">項目</a></td></tr> <tr><td><a href="tb.htm" target="main">項目2</a></td></tr> </tbody> </table> こんな感じで落ち着きました。
その他の回答 (1)
- Fukutarou
- ベストアンサー率30% (193/641)
上記のは知らないのであしからず^^; 海外のjavaを扱ったURLを紹介します。 小窓をコピーして中のリンクを変更すれば良いかと思います。 ステップ等はエキサイトで翻訳しながら読めば解りやすいと思います。
お礼
ご回答ありがとうございます。 ご紹介頂いたサイト、拝見しました。時間のあるときにでも他のTips少し翻訳しながら使いたいと思います。
お礼
早速、教えて頂いた通りに変えてみましたら思った通りに表示されるようになりました。自分で作ったというか、本を見ながら打った部分を大幅に変える事もなく、嬉しいです。 本当にありがとうございました!