onMouseOver läuft nicht nach replaceChild
Jörg Umbricht
- javascript
0 Jörg Umbricht0 Jörg
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='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:alert(document.getElementsByTagName('body')[0].innerHTML)">Den Inhalt des Bodys anzeigen</A></P>
</BODY>
</HTML>
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>
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"