• ベストアンサー

自閉式ツリーの修正について

こんにちは。いつもお世話になっております。 こちらを参考に自閉式ツリーを作りました。 http://amenti.usamimi.info/treemenu2.html --------------------------------------------------------------- <p><a href="javascript:tree2('tree','menu1');" title="ツリーあり">ツリーあり</a></p> <div class="tree" id="menu1">  <ul>   <li><a href="aaa.html" title="aaa">aaa</a></li>   <li><a href="bbb.html" title="bbb">bbb</a></li>  </ul> </div> <p><a href="nashi.html" title="ツリーなし">ツリーなし</a></p> --------------------------------------------------------------- ツリーにする必要のないメニューがあったので、上記の通り<div>~</div>を消したのですが、そのメニューをクリックしても開いたメニューが閉じてくれません。 いろいろと試したのですが駄目だったので、質問に伺いました。 どのように修正をしたらうまく動作するでしょうか。 ご教示のほどよろしくお願いします。

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

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.2

htmlでは「ツリーなし」をクリックしたら別ページが開くようになってますから、「そのメニューをクリックしても開いたメニューが閉じてくれません。」というのがちょっと状況がわかりませんが、 もし別フレームとかに出していて、元のページは遷移せずに残ってるとかでしたら、 「ツリーなし」をクリックしたときにJavaScriptコードが実行されるようになってませんね。ですから、それをクリックしても、一度開いた「ツリーあり」の方が閉じられることはありません。 あと、くだんのJavaScriptコードは、下にぶら下げるツリーなdivが無いと動作しないようになってる感じですので、中身のないダミーのdivは必要です。 <p><a onclick="tree2('tree','menu2');" href="nashi.html" title="ツリーなし" target="xxxx">ツリーなし</a></p><div class="tree" id="menu2"></div> といった形にしておけば、ツリーなしをクリックしたときにツリーありの方の開いたツリーは閉じさせられます。

yako_k
質問者

お礼

回答ありがとうございました。 targetの記載が漏れており、大変失礼しました。インラインフレームに表示をしておりました。 教えていただいた方法で、無事にツリーを閉じることができました。 わかりにくい説明であったにも関わらず、的確なご指導をありがとうございました!

その他の回答 (1)

回答No.1

記載されたHTML部分に問題はなさそうです。 スクリプト部分は参考URLと全く同じですか? 原因はJavaScriptか記載されていないHTMLの部分になるとおもいます。

yako_k
質問者

お礼

回答をありがとうございます。 スクリプトは参考URLと同じでした。 初心者のわかりにくい説明で大変失礼致しました。 このたびは本当にありがとうございました。

関連するQ&A