Moin,
ich versteh jetzt nicht was das bringt, also ich mach das so:
Ah ok, wiedermal sieht man dass es leichter ist zu helfen, wenn man die ganze Geschichte kennt. Ich hatte bisher gedacht, du hättest nur irgendeine Funktion (meinetwegen alert()) und möchtest die, wenn ein bestimmtes Ereignis auftritt, mit einem bestimmten Parameter aufrufen.
machEvent("ID eins Divs", "mouseover", auf(ID eins Divs));
Du denkst hier viel zu kompliziert, mach dich mal mit dem DOM ein bisschen vertrauter und fange an, objektorientierter zu denken. Also soweit ich das sehe, willst du eine Funktion aufrufen und ihr als Parameter das div übergeben das ge-mouseover-t wurde. Dafür hat es im DOM-Event die unheimlich praktische Eigenschaft currentTarget die immer das DOM-Objekt enthält zu dem der aktuell laufende Event-Listener gehört.
Ich hab deinen Code mal modifiziert
function auf(ev){
if(!ev) ev = window.event; // Kann es zwar grad nicht testen, aber iirc braucht IE das
div = ev.currentTarget; // DOM-Kompatibel
// Ich bin mir nicht sicher, ob das beim IE nicht auch wieder anders heisst
// In div liegt jetzt das div-Objekt auf das das Ereignis ausgeführt wurde
}
function machEvent(objekt, Eventtyp, Funktion){
objekt = eval(document.getElementById(objekt));
if (objekt.addEventListener){
objekt.addEventListener(Eventtyp, Funktion, true);
return true;
} else if (objekt.attachEvent){
var r = objekt.attachEvent("on"+Eventtyp, Funktion, true);
return r;
}
}
machEvent("ID eins Divs", "mouseover", auf);
und schwupps kannst du dir das explizite Übermitteln der div-ID sparen.
--
Henryk Plötz
Grüße aus Berlin