sho: dynamische Liste aus Arrays

Beitrag lesen

ok..also ich generiere jetzt (hoffentlich korrekt) mein submenu (siehe code unten :-)) danke noch mal für die objekterhellung.

ABER ich brauche noch HILFE für:

  • wenn mein untermenu auch unterpunkte enthält, (was es ja tut (untermenu2), dann soll das nicht automatisch hinzugefügt werden, sondern der entsprechende Listenpunkt soll ja einen Link erhalten. Und wenn man diesen dann klickt soll die funktion machMenu erneut aufgerufen werden, die aktuellen Listenpunkte gelöscht und die nächste Unterebene generiert. Kann mir dabei noch jmd helfen?
  
<!DOCTYPE html">  
  
<html>  
    <head>  
        <title>Navigation "neu laden"</title>  
		<style type ="text/css">  
		<!--  
			html, body{  
				font-family:Arial, sans serif;  
				font-size:14px;  
			}  
			.clear{  
				clear:both;  
			}  
			a{  
			text-decoration:none;  
			}  
			ul#submenu{  
				list-style:none;  
				width:18em;  
				height:10em;  
				margin:0;  
				padding:0;  
				background:red;  
			}  
			ul#submenu li{  
				display:block;  
				border:1px solid black;  
				border-radius:5px;  
				margin:2px;  
				width:12em;  
				height:2em;  
				float:left;  
			}  
		-->  
		</style>  
		<script type="text/javascript" src="jquery.js"></script>  
		<script type="text/javascript">  
			//Konstruktor für Menüobjekte  
			function MyMenu(title, items) {  
				this.title = title;  
				this.items = new Array();  
				  
				MyMenu.prototype.addItem = function (item) {  
				   this.items.push(item);  
				}  
			}  
			//Menü erstellen  
			function machMenu(){  
			/*function deleteActSubmenu(){  
				$('#submenu li').remove();  
			}*/	  
			var menu = new MyMenu("Testmenu");  
			var untermenu1 = new MyMenu ("Untermenu1");  
			var untermenu2 = new MyMenu ("Untermenu2");  
			//hier wird dem Testmenu das Untermenu hinzugefügt  
			menu.addItem(untermenu1);  
			menu.addItem(untermenu2);  
			//hier bekommt das Untermenu zwei neue Untermenupunkte  
			untermenu1.addItem(new MyMenu("Untermenu1-1"));  
			untermenu1.addItem(new MyMenu("Untermenu1-2"));  
  
			untermenu2.addItem(new MyMenu("Untermenu2-1"));  
			untermenu2.addItem(new MyMenu("Untermenu2-2"));  
			untermenu2.addItem(new MyMenu("Untermenu2-3"));  
			untermenu2.addItem(new MyMenu("Untermenu2-4"));  
			  
			// Traversing Menu  
			for (var i = 0; i< menu.items.length; i++) {  
			   var untermenu = menu.items[i].items;  
			   if (untermenu.length > 0) {  
					for (var i=0;i<untermenu.length;i++){  
						var newLi = document.createElement("li");  
						document.getElementById('submenu').appendChild(newLi);  
						var newLiText = document.createTextNode(menu.items[i].title);  
						document.getElementsByTagName('li')[i].appendChild(newLiText);  
					}  
			   }  
			   else {  
				 // keine untermenus  
				 alert ("keine");  
			   }  
			}		  
			}  
		  
		</script>  
    </head>  
    <body>  
		<header>  
			-----kopf-----  
		</header>  
		<h2><a id="shownLevel" href="javascript:machMenu()">Test: generiere Liste</a></h2>  
	  
			<ul id="submenu">  	  	  
			  
				<!--dynamic list menu-->		  
			</ul>  
			<div class="clear"></div>  
		<footer>  
			-----fuhu&szlig;-----  
		</footer>  
    </body>  
    </html>