Jörg Umbricht: onMouseOver läuft nicht nach replaceChild

Hallo

Ich ersetze in einer Tabelle eine Zelle durch eine neue. Dazu benutze ich 'replaceChild'. Die neue Zelle soll beim Überfahren mittels Javascript eine Rückmeldung machen.

Beim Überfahren der neu erstellten Zelle wird jedoch kein onMouseOver ausgelöst.

Der Inhalt des Bodys (Abfrage mittels Link 'Den Inhalt des Bodys anzeigen') zeigt jedoch den onMouseOver-Befehl an.

Was mache ich falsch?

Jörg

PS: Ich will beim Überfahren des neuen Knoten ein Hand-Symbol anzeigen, das ich für unterschiedliche Browser im Normallfall durch STYLE="cursor:pointer; cursor:hand;" zuweise.
Kann mir jemand sagen, wie ich beide Werte dem Cursor zuweisen kann?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> MouseOver </TITLE>
<SCRIPT Language="JavaScript">
<!--
function myAustauschen(){
 //Neuen Knoten definieren
 var NewNode = document.createElement("td");

//Dem Knoten Eigeschaften zuweisen
 NewNode.ID = "EineNeueZelle";
 NewNode.innerHTML = "Beim Überfahren dieser Zeile sollte ein onMouseOver erscheinen.<BR><A HREF=&#39;javascript:alert("Ich habe auf den Link geklickt.");&#39;>Dies ist jetzt ein Link</A> und dies noch nicht.";
 NewNode.onMouseOver = "alert(&#39;Hand über TD&#39;)";
 //NewNode.onClick = "alert(&#39;nada&#39;)"; //Haut auch nicht hin!
 NewNode.style.cursor = "pointer"

//Den alten durch den neuen Knoten ersetzen
 document.getElementById("FillThis").replaceChild(NewNode, document.getElementById("FillThis").firstChild);
}

//-->
</SCRIPT>
</HEAD>

<BODY onLoad="myAustauschen()">
<TABLE BORDER="1">
<TR><TD onMouseOver="alert(&#39;Die Maus ist über der Zelle.&#39;)">Nur für onMouseOver</TD></TR>
<TR ID="FillThis"><TD>Hier soll was geschehen bei onMouseOver.</TD></TR>
</TABLE>
<P><A HREF="javascript:alert(document.getElementsByTagName(&#39;body&#39;)[0].innerHTML)">Den Inhalt des Bodys anzeigen</A></P>
</BODY>
</HTML>

  1. HMmm, da hat's mir doch den Code verhauen, deshalb nochmals:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> MouseOver </TITLE>
    <SCRIPT Language="JavaScript">
    <!--
    function myAustauschen(){
     //Neuen Knoten definieren
     var NewNode = document.createElement("td");

    //Dem Knoten Eigeschaften zuweisen
     NewNode.ID = "EineNeueZelle";
     NewNode.innerHTML = "Beim Überfahren dieser Zeile sollte ein onMouseOver erscheinen.<BR><A HREF='javascript:alert("Ich habe auf den Link geklickt.");'>Dies ist jetzt ein Link</A> und dies noch nicht.";
     NewNode.onmouseover = "alert('Hand über TD')";
     //NewNode.onClick = "alert('nada')"; //Haut auch nicht hin!
     NewNode.style.cursor = "pointer"

    //Den alten durch den neuen Knoten ersetzen
     document.getElementById("FillThis").replaceChild(NewNode, document.getElementById("FillThis").firstChild);
    }

    //-->
    </SCRIPT>
    </HEAD>

    <BODY onLoad="myAustauschen()">
    <TABLE BORDER="1">
    <TR><TD onMouseOver="alert('Die Maus ist über der Zelle.')">Nur für onMouseOver</TD></TR>
    <TR ID="FillThis"><TD>Hier soll was geschehen bei onMouseOver.</TD></TR>
    </TABLE>
    <P>
    <A HREF="javascript:document.getElementById('T').innerText='**0';">Den Inhalt des Bodys anzeigen</A>
    </P>
    <DIV ID="T"></DIV>
    </BODY>
    </HTML>

  2. Hallo

    Habe meine Probleme gelöst [und kann jetzt schlafen gehen :-)].
    Danke an Peter, http://forum.de.selfhtml.org/archiv/2004/1/69606/#m400766

    -------------------------------------------------
    Setzen von onMouseOve in Javascript
    -------------------------------------------------
    var N = document.getElementById("T");
    N.onmouseover = function() {alert(this.id);} //Oder eine beliebige Funktion
    //Achtung: onmouseover in smallercase!

    -------------------------------------------------
    Setzen von Styles vom Typ Cursor beim Überfahren
    -------------------------------------------------
    //IE 5.x
    N.style.cursor = "hand"
    //Vielleicht ist hand unbekannt (IE 6; NS)
    //=> pointer einsetzen
    if(!N.style.cursor) N.style.cursor = "pointer"