|
|
Hallo, Wie kann ich onmouseover-Attribute setzen? mit
Code:
document.getElementById('test').onmouseover = 'testFunction();'; |
funktioniert es nämlich nicht.
Grüße, Ryan
|
|
| 29.07.2008 14:22:35 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 654
|
|
Hi, nah drann aber doch vorbei ;-))
Code:
document.getElementById('test').onmouseover = testFunction; |
_______________________________________ mfg Thomas Mell
www.validome.org
|
|
| 29.07.2008 16:08:43 |
|
|
|
Danke,
und wie ist das wenn ich Argumente für testFunction setzen will?
|
|
| 29.07.2008 16:46:37 |
|
HTMELL
Administrator
Registriert: 11.05.2006
Beiträge: 654
|
|
Soweit mir bekannt ist das nicht möglich. Was sollen das für Argumente sein, welche man nicht in der Funktion setzen/abfragen könnte? Ein Event übergibt niemals Argumente, ausser das eigene Eventobjekt. Daran kommt man folgendermaßen.
Code:
document.getElementById('test').onmouseover = function(evt) {
var el = getEventObject(evt);
// el enthält nun das HTML-Objekt welches das Event ausgelöst hat
};
// Holt das ausloesende Eventobjekt
function getEventObject(e) {
// IE?
if(window.ActiveXObject) {
return window.event.srcElement;
}
else {
if(e.target.nodeName == "#text") {
return e.target.parentNode;
}
else {
return e.target;
}
}
} |
_______________________________________ mfg Thomas Mell
www.validome.org
|
|
| 29.07.2008 17:22:09 |
|
|
|
Hab' da mal was vorbereitet.
Das Concatenieren von String-Argumenten zu Funktionen, die dann per Timeout gestartet werden, ist bekannt. Darum ließ mich das schonmal nicht ruhen.
Schlussendlich kann man also auch Argumente an Event-Handler-Routinen übergeben. Das sind hier freilich vorher definierte Variablen, weil es anders nicht geht, aber es sollte keine Schwierigkeit bedeuten, die geänderten Werte dort erst hineinzuschreiben, bevor die Event-Handler verbogen werden. Mehr Dynamik braucht sicher keiner. :-)
<html> <head> <script type="text/javascript"> var eins = 'A Tidelidum! Ha!'; var zwo = 'Ba Baaa'; function sachWas(was) { alert(was); } </script>
</head>
<body style="background-color:powderblue;"> <div > ↓ Die Maus außenrum bewegen, sonst verwirrt's. </div> <div style="text-align:center;margin:4em;background-color:white;width:50%;"> <div id="alert" onmouseover="sachWas(zwo);" style="margin-bottom:2em;color:purple;"> erst nur hier hovern </div> <hr/> <div id="set" onmouseover="document.getElementById('alert').onmouseover='sachWas(eins)';"> dann hier hovern und wieder oben. </div> </div> </body> </html>
|
|
| 20.08.2009 14:14:40 |
|
|
|
Natürlich schwöre ich, dass das Beispiel oben funktioniert hat. Mir will aber nicht mehr einfallen, unter welchen Voraussetzungen und in welchem Browser... [Den Rest bitte denken]
|
|
| 21.09.2009 11:11:16 |
|