Problem mit mouseover im IE
dave.trudes
- javascript
Hallo!
Ich habe auf meiner Seite eine Table mit 3 Spalten (id's: left, mid, right).
Mittels setAttribute() möchte ich diesen Spalten ein mouseover-Attribut zuweisen. Die Funktion die dann durch mouseover ausgeführt werden soll, speichert die id.
//Javascript
function initDD(){
var cols = Array('left','mid','right');
for (x=0;x<cols.length;x++){
var el = document.getElementById(cols[x]);
el.setAttribute('onmouseover', 'saveCurrentDiv("'+el.id+'");');
}
function saveCurrentDiv(w) {
currentOverDiv = w;
alert (currentOverDiv);
}
Diese Funktionen funktionieren im Mozilla einwandfrei, der IE jedoch, ignoriert diese. Der Javascript-Debugger vom IE gibt keine Fehler aus.
Was ist an diesen Funktionen falsch?
Vielen Dank für eure Hilfe
Hallo,
for (x=0;x<cols.length;x++){
var el = document.getElementById(cols[x]);
el.onmouseover=function(){saveCurrentDiv(this.id);}
}
Gruß aus Berlin!
eddi
Mittels setAttribute() möchte ich diesen Spalten ein mouseover-Attribut zuweisen. Die Funktion die dann durch mouseover ausgeführt werden soll, speichert die id.
Das ist keine gute Idee, setAttribute ist nicht nötig und der IE hat damit auch sein Probleme.
//Javascript
function initDD(){
var cols = Array('left','mid','right');
for (x=0;x<cols.length;x++){
var el = document.getElementById(cols[x]);
el.setAttribute('onmouseover', 'saveCurrentDiv("'+el.id+'");');
Du brauchst die id aber auch gar nicht, denn in der Funktion ist this das Objekt auf dem der mouserover stattfand.
el.onmouseover = saveCurrentDiv;
function saveCurrentDiv(e)
{
alert (this.id);
}
Firefox übergibt hier immer den Event als ersten Parameter.
Struppi.