javascript DOM und IE
ernst Groß
- dhtml
Hi,
ich habe ein Script geschrieben, daß mir in den DOM ein img-Objekt einfügt. Dieses Bild soll onMouseOver/out sensible sein:
mein Code:
// die Variablen sind natürlich alle konkret!
// Variable picID,myID Funktionen: aktive() inaktive()
newElement = document.createElement("img");
newElement.setAttribute("id",picID,0);
newElement.setAttribute("src","img.gif",0);
newElement.setAttribute("onMouseOver","aktive(this.id)",0);
newElement.setAttribute("onMouseOut","inAktive(this.id)",0);
// einpflegen in den DOM läuft auch!
document.getElementById(myID).appendChild(newElement);
auf dem FireFox läuft es auch soweit sehr gut, nur der IE kriegt das Ereignis onMouseOver und onMouseOut nicht verarbeitet. Selbst Tests mit Anführungszeichen'' und alert("hallo") blieben erfolglos! Der DOM wird im IE offensichtlich auch richtig erzeugt, auch wenn Anführungszeichen eher selten sind.
Meine Frage: wie "überredet" man den Explorer dazu mausOver-Ereignisse die Später in den DOM erscheinen zu verarbeiten?
Vielen Dank für Eure Hilfe
Ernst
egross@gmx.net
Hi,
newElement.setAttribute("onMouseOver","aktive(this.id)",0);
newElement.onmouseover = new Function ("aktive(this.id)");
Gruesse, Joachim
Hallo Joachim.
newElement.setAttribute("onMouseOver","aktive(this.id)",0);
newElement.onmouseover = new Function ("aktive(this.id)");
Hier explizit ein Funktionsobjekt zu erzeugen ist nicht nötig:
newElement.onmouseover = function() {
aktive(this.id);
}
Einen schönen Dienstag noch.
Gruß, Ashura
newElement.onmouseover = function() {
aktive(this.id);
}
wobei sich this.id sich höchst überflüssig anhört:
~~~javascript
newElement.onmouseover = aktive;
function aktive()
{
....// Hier ist this = newElement
}
Struppi.
ich habe ein Script geschrieben, daß mir in den DOM ein img-Objekt einfügt. Dieses Bild soll onMouseOver/out sensible sein:
Naja, das geht auch mit CSS.
mein Code:
// die Variablen sind natürlich alle konkret!
// Variable picID,myID Funktionen: aktive() inaktive()newElement = document.createElement("img");
newElement.setAttribute("id",picID,0);
newElement.setAttribute("src","img.gif",0);
newElement.setAttribute("onMouseOver","aktive(this.id)",0);
newElement.setAttribute("onMouseOut","inAktive(this.id)",0);
setAttribute ist nicht notwendig und bringt den IE auch ab und an aus dem Konzept. einfach [object].eigenschaft = ..... genügt vollkommen.
var newElement = document.createElement("img");
newElement.src = "img.gif";
newElement.onmouseover = aktive;
newElement.onmouseout = inAktive;
Die ID ist nicht notwendig, da du in den Funktionen aktive und inAktive über this auf das Element zugreifen kannst.
Struppi.