nein, denn so ohne deinen Quellcode zu kennen ist das doch etwas schwierig
Gerne.
Das Objek oMen ist ein Eintrag aus einem Objekt-Array oMenu[], in dem alle Menüs eingelesen werden (oMen = oMenu[x];).
Auf diese Weise kann die Funktion DrawMenu beliebig oft iterativ aufgerufen werden.
Weiters gibt es noch ein CSS für die Formatierung der Elemente.
Hier die Routine:
function DrawMenu(oMen, BY, x, y) {
if (!BY) {
BY = document.getElementsByTagName('body')[0];
BY.style.background = 'transparent';
}
var UL = document.createElement('ul');
UL.className = 'Navigation';
UL.id = oMen.Id;
with(UL.style) {margin = 0; padding = 0;}
if (oMen.popup) {
UL.style.display = 'none';
UL.style.marginLeft = oMen.indent;
}
else {
if (oMen.men_base == 'top')
UL.style.top=y;
else
UL.style.bottom=y;
UL.style.position = men_posArt;
UL.style.left = x;
}
UL.style.width = oMen.men_width;
UL.borderColor = BY.style.backgroundColor;
BY.appendChild(UL);
if (oMen.popup) {
BY.onclick = function() {
if (UL.style.display == 'none') {
UL.style.display = '';
}
else {
UL.style.display = 'none';
BY.style.border = '1px';
BY.style.borderStyle = 'solid';
}
}
}
var i;
var TmpArray = oMen.sMenu.split('|');
var MenArray = new Array(TmpArray.length);
for (i = 0; i < TmpArray.length; i++)
MenArray[i] = TmpArray[i].split(';');
for (i = 0; i < MenArray.length; i++) {
var LI = document.createElement('li');
LI.id = MenArray[i][0];
LI.style.borderColor = 'transparent';
LI.style.backgroundColor = 'transparent';
LI.style.width = oMen.men_width;
LI.style.height = oMen.men_height;
LI.style.align = 'right';
var LI_Txt = document.createTextNode(MenArray[i][1]);
var AH = document.createElement('A');
AH.style.fontWeight = oMen.font_Weight;
AH.style.fontSize = oMen.font_Size;
AH.style.fontFamily = oMen.font_Face;
AH.style.width = oMen.men_width;
AH.style.backgroundImage = oMen.bk_url;
AH.appendChild(LI_Txt);
LI.appendChild(AH);
if (MenArray[i][2].substr(0,1) != '$') {
AH.href = MenArray[i][2];
}
else {
AH.href = 'javascript:dummy();';
DrawMenu(oMenu[MenArray[i][2].substr(1)], LI, 0, 0);
}
UL.appendChild(LI);
}