プルダウンメニューを作る。
出来上がりはこんな感じ。
⬇親要素をクリックして開くと...
説明とソース
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <title>プルダウンメニューを作る</title> </head> <body> <h1>プルダウンメニュー</h1> <div style="display:none;" onclick="clickMenu(event,this);"> 親メニュー1 <div style="display:none;" onclick="clickMenu(event,this);"> 子メニュー1 <div style="display:none;" onclick="clickMenu(event,this);"> 孫メニュー1 </div> </div> </div> <div style="display:none;" onclick="clickMenu(event,this);"> 親メニュー2 <div style="display:none;" onclick="clickMenu(event,this);"> 子メニュー2 <div style="display:none;" onclick="clickMenu(event,this);"> 孫メニュー2 </div> </div> </div> <div style="display:none;" onclick="clickMenu(event,this);"> 親メニュー3 <div style="display:none;" onclick="clickMenu(event,this);"> 子メニュー3 <div style="display:none;" onclick="clickMenu(event,this);"> 孫メニュー3 </div> </div> </div> <script type="text/javascript"> //クリックされたメニューの子メニューを表示するための関数。 function clickMenu(event,menu) { var childMenu = null; //クリックされたメニューに子メニューが存在する場合。 if (menu.childNodes.length > 1) { //クリックされたメニューの子メニューを参照する。 childMenu = menu.childNodes[1]; //子メニューが非表示の場合。 if (childMenu.style.display == "none") { //子メニューを表示する。 childMenu.style.display = "block"; } //子メニューが表示済みの場合。 else { //子メニューを非表示にする。 childMenu.style.display = "none"; } } //イベント伝播を中止する。 if (navigator.appName.indexOf("Microsoft") > -1) { event.cancelBubble = true; } else { event.stopPropagation(); } } </script> </body> </html>