Struppi: Startmenü leidet an Kinderkrankheiten

Beitrag lesen

Form eines Objekts "z" von
http://eddi.to-grip.de/v/01.php

eben Objekt, kein array.
z=new Array()
z["Privates"]=0
z["Chat"]=0
z["Ich"]=new Array()
z["Ich"]["eddi"]=0
grund()

z = new Object();
z.Privates = 0;
z.Chat = 0;
z.Ich = new Object();
z.Ich.eddi  = 0;

Was mir auffällt an deinem Skript (das einfacher auszuprobieren wäre, wenn du die Zeilennummern weggelassen hättest) ist: bist du sicher, das du this immer richtig verwendest?

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 :                         }

this zeigt auf das Objekt, das z.b. einen event auslöst, d.h. wenn du eine Tabellenzelle hast und der diese Funktion beim mouseover zuweist, ist this die Tabellenzelle. so wie ich das Skript verstehe, soll die Tabellezelle den Event auslösen und du willst diese in der funktion ansprechen, dazu brauchst du keinen Parameter, this ist die Zelle. Und später in der 84 weist du irgendwelchen Nodes (ich blicvke bei deinem Konstrukt parent.parent.child.firstchild nicht mehr durch) beim mouseover wieder diese Funktion zu, mit dem aktuellen Objekt als Parameter.

Ich vermute mal du willst eher sowas:

var obj = [Tabellenzelle];

obj.onmouseover = list; // ohne Klammern

function list()
{
   alert('ich bin die Zelle:' + this);
}

Struppi.