molily: DOM: Wie setzte ich Attribute bei neu erzeugten Elementen

Beitrag lesen

Hallo,

Die onmouserover events gehen alle nicht.... :(

Wahrscheinlich beziehst du dich auf den Internet Explorer, der hat einige Eigenheiten.

TD1.onmouseover = "over02(this)";
    TD1.onmouseout = "out02(this)";

Im IE musst du die Funktionsobjekte in den Attributen speichern, keine Strings:

TD1.onmouseover = over02;
TD1.onmouseout = out02;

In over02 und out02 kannst du dann über this auf den Elementknoten zugreifen (weil die Handler im Kontext der Elementknoten ausgeführt werden bzw. weil sie Methoden dieses Objektes sind).

http://www.quirksmode.org/js/this.html

TD1.onclick = "linkme('test.html')";

Das ist schon schwieriger. Entweder:

TD1.onclick = fuction () { linkme("test.html"); };

(Function-Expression, das heißt eine anonyme Funktion als Hülle)

Oder:

TD1.link = "test.html";
TD1.onclick = linkme;
function linkme () {
   alert(this.link);
}

(Den String einfach am td-Elementobjekt speichern, also eine neue Eigenschaft hinzufügen. Im Event-Handler dann darauf zugreifen.)

Mathias