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ß-----
</footer>
</body>
</html>