onmouseover manipulieren
AllesMeins
- javascript
0 Struppi0 Joachim0 Struppi0 Joachim
0 AllesMeins
Hallo,
ich habe folgendes zum Testen gebaut:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script language="javascript">
function lupe(status){
alert(status);
document.bild.onmouseover = "lupe('irgendwas')";
}
</script>
</head>
<body>
<img src="bild.gif" name="bild" onmouseover="lupe('show')"></body></html>
Nun ergibt sich da folgendes Problem. Das ganze soll dahin führen das ich den onmouseover-part per JavaScript manipulieren kann. Das funktioniert aber nicht richtig. Beim ersten onmouseover wird das ganze noch richtig ausgeführt (da kommt der auslösende Befehl ja auch noch direkt aus dem HTML). Beim zweiten Versuch passiert allerdings gar nichts mehr. Daraus schliesse ich, das JS den onmouseover-Wert schon in irgendeiner Weise manipuliert (sonst müsste ja der 'alte' onmouseover Befehl noch funktionieren, wenn mein script daran nichts ändern würde), aber irgendetwas dabei falsch läuft. Deswegen meine Frage, wie muss ich es richtig machen, wie kann ich den auszuführenden Befehl bei onmouseover() manipulieren?
Grüsse
Marc
function lupe(status){
alert(status);
document.bild.onmouseover = "lupe('irgendwas')";
Hier weist du dem Mouseover Event ein String zu, welchen Sinn sollte das machen?
Gib dir bevor du das machst mal aus was onmouseover sein muss, mit
alert(document.bild.onmouseover)
Leider finde ich gerade in selfHTML kein vernünftiges Kapitel zu Events, also, du musst den Event die Funktionsreferenz zu weisen:
document.bild.onmouseover = lupe;
Um dein nächste Frage zu beantworten, nein du kannst keinen Parameter übergeben, wie auch, du weißt ja noch gar nicht wann der Event auftritt und ob der Parameter noch existiert bis dahin.
Du kannst es allerdings mit einer anonymen Funktion probieren:
document.bild.onmouseover = function(status) {.... };
hat dann aber immer den gleichen Parameter.
Struppi.
Hi,
document.bild.onmouseover = "lupe('irgendwas')";
Damit _rufst_ Du, wie Struppi gesagt hat. Du brauchst aber lediglich einen "Zeiger" auf die Funktion.
Deswegen meine Frage, wie muss ich es richtig machen, wie kann ich den auszuführenden Befehl bei onmouseover() manipulieren?
versuch mal sowas:
document.bild1.onmouseover = new Function("alert(1)");
document.bild2.onmouseover = new Function("alert(2)");
Btw.: vergiss nicht, dass Du events capturen musst, wenn Du NC 4x noch beruecksichtigen willst.
Gruesse Joachim
Hi,
document.bild.onmouseover = "lupe('irgendwas')";
Damit _rufst_ Du, wie Struppi gesagt hat. Du brauchst aber lediglich einen "Zeiger" auf die Funktion.
nö, tut er nicht, es ist lediglich eihn String.
Btw.: vergiss nicht, dass Du events capturen musst, wenn Du NC 4x noch beruecksichtigen willst.
Muss man hier auf jeden Fall nicht. (zumindest nicht bei den NC 4'er die ich kenne)
Struppi.
Hi,
[Schlammpig-eiliges Hingekritzel entsorgt...]
danke ;-)
Gruesse Joachim
Hiho,
danke das hat geklappt
Grüsse
Marc