Hallo,
ist es Mums? Sinds die Windpocken? Ich habe keine Ahnung mehr woran es liegen könnte.
Zum Ablauf: Betreffende Funktion:
Es wird ein durch onClick auf das Wort ein menu() ab Zeile 14 Menü abgeklärt, ob das Start- menü bereis eingeblendet ist oder nicht und läd sich dynamisch erzeugte Daten in Form eines Objekts "z" von http://eddi.to-grip.de/v/01.php bzw. löscht den vohandenen Datenbestand var z Durch Laden von 01.php wird grund() aufgerufen.
Es wird Das Grundmenü erzeugt und dyna- grund() ab Zeile 30 misch eingehängt.
Durch onMouseover wird dabei die Hinter- color() ab Zeile 56 grundfarbe geändert und alle Unterme- nüs gelöscht, die nicht das selbe parentNode haben.
Durch onMouseover wird ein Untermenü dyna- list() ab Zeile 77 misch erzeugt und eingehängt.
============================================================================
Anzeigebeispiel http://eddi.to-grip.de/v/ <iframe src="http://eddi.to-grip.de/v/" width="90%" height="90%">http://eddi.to-grip.de/v/</iframe>
(es ist möglich, daß nur geckos etwas zu sehen bekommen)
Bei mir ist es nicht möglich durch onMouseover auf "Anlegen" die Untermenüs von "eddi" Auszuhängen.
0 : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 1 : <html> 2 : <head> 3 : <title>Admin</title> 4 : <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"> 5 : <style type="text/css"> 6 : html,body {padding:0;margin:0;font-family:sans-serif} 7 : table {background:#EEE;border:2px solid #CCC} 8 : td {padding:0px 4px 0px 4px;cursor:default} 9 : 10 : #task {position:fixed;bottom:0px;width:100%;border:none} 11 : </style> 12 : <script type="text/javascript"> 13 : var m=new Array('Filialen','Chat','Warenwirtschaft'); 14 : function menu() 15 : { 16 : if(!document.getElementById("ein").getElementsByTagName("table")[0]) 17 : { 18 : delete(z); 19 : t=document.createElement("script"); 20 : t.setAttribute("src","http://eddi.to-grip.de/v/01.php"); 21 : t.setAttribute("type","text/javascript"); 22 : document.getElementsByTagName("head")[0].appendChild(t); 23 : } 24 : else 25 : { 26 : document.getElementById("task").getElementsByTagName("td")[0].removeChild(document.getElementById("task").getElementsByTagName("td")[0].firstChild) 27 : while(document.getElementsByTagName("head")[0].getElementsByTagName("script").length!=1) document.getElementsByTagName("head")[0].removeChild(document.getElementsByTagName("head")[0].getElementsByTagName("script")[1]); 28 : } 29 : } 30 : function grund() 31 : { 32 : table=document.createElement("table"); 33 : table.setAttribute("cellpadding",0); 34 : table.setAttribute("cellspacing",0); 35 : table.setAttribute("id","neu"); 36 : for(m in z) 37 : { 38 : td=document.createElement("td"); 39 : t=document.createTextNode(m); 40 : td.onmouseover=function(){list(this)} 41 : td.appendChild(t) 42 : tr=document.createElement("tr"); 43 : tr.appendChild(td) 44 : td=document.createElement("td"); 45 : tr.appendChild(td) 46 : tr.onmouseover=function(){color(this)} 47 : table.appendChild(tr) 48 : } 49 : document.getElementById("ein").appendChild(table); 50 : s=document.getElementById("neu").style; 51 : s.position="fixed" 52 : s.zIndex=0; 53 : s.bottom=document.getElementById("task").offsetHeight+"px"; 54 : document.getElementById("neu").removeAttribute("id"); 55 : } 56 : function color(v) 57 : { 58 : delete(t); 59 : t=v.parentNode.childNodes; 60 : for(i=0;t[i];i++) 61 : { 62 : if(t[i]!=v) 63 : { 64 : t[i].style.background='transparent'; 65 : t[i].onmouseover=function(){color(this)} 66 : while(t[i].childNodes[1]) 67 : { 68 : t[i].removeChild(t[i].childNodes[1]) 69 : } 70 : td=document.createElement("td"); 71 : t[i].appendChild(td) 72 : } 73 : } 74 : v.style.background="#DDD"; 75 : v.onmouseover=''; 76 : } 77 : function list(v) 78 : { 79 : v.onmouseover=''; 80 : t=v.parentNode.parentNode.childNodes; 81 : for(i=0;t[i];i++) 82 : if(t[i].firstChild!=v) 83 : { 84 : t[i].firstChild.onmouseover=function(){list(this)} 85 : } 86 : y=''; 87 : a=''; 88 : x=v; 89 : y=x.firstChild.nodeValue+'$$$'; 90 : x=x.parentNode.parentNode.parentNode; 91 : while(x.id!="ein") 92 : { 93 : y+=x.parentNode.firstChild.firstChild.nodeValue+'$$$'; 94 : x=x.parentNode.parentNode.parentNode; 95 : } 96 : y=y.split('$$$'); 97 : x=z; 98 : for(i=2;i<=y.length;i++) 99 : { 100: x=x[y[y.length-i]]; 101: } 102: table=document.createElement("table"); 103: table.setAttribute("cellpadding",0); 104: table.setAttribute("cellspacing",0); 105: table.setAttribute("id","neu"); 106: if(y[y.length-2]=='Ich') 107: { 108: td=document.createElement("td"); 109: t=document.createTextNode('Anlegen'); 110: td.appendChild(t) 111: tr=document.createElement("tr"); 112: tr.appendChild(td) 113: td=document.createElement("td"); 114: tr.appendChild(td) 115: tr.onmouseover=function(){color(this)} 116: table.appendChild(tr) 117: if(y[0]!='Ich') 118: { 119: td=document.createElement("td"); 120: t=document.createTextNode('Löschen'); 121: td.appendChild(t) 122: tr=document.createElement("tr"); 123: tr.appendChild(td) 124: td=document.createElement("td"); 125: tr.appendChild(td) 126: tr.onmouseover=function(){color(this)} 127: table.appendChild(tr) 128: 129: td=document.createElement("td"); 130: t=document.createTextNode('Verschieben'); 131: td.appendChild(t) 132: tr=document.createElement("tr"); 133: tr.appendChild(td) 134: td=document.createElement("td"); 135: tr.appendChild(td) 136: tr.onmouseover=function(){color(this)} 137: table.appendChild(tr) 138: 139: td=document.createElement("td"); 140: t=document.createTextNode('Aktionen'); 141: td.appendChild(t) 142: tr=document.createElement("tr"); 143: tr.appendChild(td) 144: td=document.createElement("td"); 145: tr.appendChild(td) 146: tr.onmouseover=function(){color(this)} 147: table.appendChild(tr) 148: } 149: } 150: for(m in x) 151: { 152: td=document.createElement("td"); 153: t=document.createTextNode(m); 154: td.onmouseover=function(){list(this)} 155: td.appendChild(t) 156: tr=document.createElement("tr"); 157: tr.appendChild(td) 158: td=document.createElement("td"); 159: tr.appendChild(td) 160: tr.onmouseover=function(){color(this)} 161: table.appendChild(tr) 162: } 163: if(!v.nextSibling.firstChild) 164: { 165: v.nextSibling.appendChild(table); 166: s=document.getElementById("neu").style; 167: s.position="fixed" 168: s.bottom=document.getElementById("task").offsetHeight+"px"; 169: document.getElementById("neu").removeAttribute("id"); 170: } 171: } 172: </script> 173: </head> 174: <body> 175: <table cellpadding="0" cellspacing="0" id="task"> 176: <tr> <td colspan="2" id="ein" style="padding:0"></td></tr> 177: <tr> <td> 178: <span onClick="menu()">Menü</span> 179: </td> 180: <td></td></tr> 181: </table> 182: </body> 183: </html>
Mir ist klar, daß 184 Zeilen Code nich wirklich schön sind durchzusehen, dallerdings sehen ich keine andere Möglichkeit. Der/die Fehler könnten überall sein... (Tut mir leid :(
Kommtentar zu einzelnen Zielen:
function grund()
Zeile 50-54 Leider habe ich es nicht hinbekommen das Element direkt anzusprechen (table.style). Daher wird eine ID zeitweilig vergeben. Betrifft ebenso 165-169 in list()
function color()
Zeile 69 An dieser Stelle wurde abgeprüft, ob removeChild() seinen Dienst tut. Das macht es. Allerdings wird das Untermenü immer noch an- gezeigt.
function list()
Zeile 79&163 So soll verhindert werden, daß nicht endlos viele Untermenüs eingehangen werden, sondern nur eins (war ein anfängliches Problem).
Zeile 89&101 Die Objektstruktur z entspricht der des Start- menüs und wird so rückerts rekonstruriet, um auf die richtigen Eigenschaften von z zuzu- greifen.
Zeile 106&117 vorerst eingeschoben Später wird dies individuell auf die einzelnen Hauptmenüpunkte jeweils zugeschnitten.
Warscheinlich ist es einfach nur Blindheit. Was und wie muß umgestellt werden, damit Untermenüs ausgehangen werder?
Gruß aus Berlin! eddi