OnMouseOut() funktioniert nicht
Günther S
- javascript
Hallo zusammen,
ich habe einen kleinen Bilderwechsel in JS geschrieben:
<img border="0" src="button.jpg" onMouseout="javascript:this.src = 'button_out.gif';" onMouseover="javascript:this.src = 'button_over';">
Der onMouseOver-Bilderwechsel klappt hervorragend, nur der onMouseOut macht mir noch Probleme.
Ich habe
onMouseout="javascript:this.src = 'button_out.gif';"
schon einmal durch
onMouseout="javascript:alert('test');"
ersetzt und dann ging beides - der onMouseOver-Bilderwechsel und der onMouseOut-Alert.
Außerdem habe ich auch schon die Befehle onMouseOver und onMouseOut vertauscht und dabei die JS-Befehle inkl. Dateinamen gleich gelassen.
In diesem Fall hat wieder nur der OnMouseOver-Bilderwechsel funktioniert.
Die Dateinamen und die JS-Syntax sind also korrekt.
Außerdem hat das mit dem OnMouseOut-Alert auch wunderbar funktioniert - wo kann da also noch das Problem liegen?
Hat jemand eine Idee?
MfG,
Günther
Hallo Günther,
zwei Dinge fallen mir an deinem Code-Schnipsel auf:
<img border="0" src="button.jpg" onMouseout="javascript:this.src = 'button_out.gif';" onMouseover="javascript:this.src = 'button_over';">
Erstens ist das Präfix "Javascript:" in einem Eventhandler Unsinn, da die Angabe implizit immer ein Scriptbefehl, in der Regel Javascript ist. Wenn man es trotzdem so notiert wie du, dann wird das "javascript:" als Sprungmarke für einen goto-Befehl interpretiert. Da du nirgends einen goto-Befehl verwendest, der das Label "javascript" anspringt, sollte das wurscht sein - aber vielleicht kommt der JS-Interpreter doch durcheinander, wenn im Quellcode mehrmals dasselbe Label definiert wird.
Zweitens empfehle ich dir nochmal einen Blick auf die Namen der Grafikdateien. Dir wird auffallen, dass beim onmouseover die Extension ".jpg" oder ".gif" fehlt. Ist das Absicht? Zulässig wäre es natürlich, aber dann muss die Grafikressource selbst auch einen Namen ohne Extension haben.
Haben dir die beiden Denkanstöße vielleicht geholfen?
Schönes Wochenende noch,
Martin
Hallo Martin,
normalerweise ist da die Dateiendung, die habe ich nur anscheinend beim Tippen hier im Forum vergessen :(
Ich hab jetzt mal das javascript: und den ; am ende rausgenommen, ist aber noch genau dasselbe ergebnis :(
An was könnte es denn sonst noch liegen?
Gruß,
Günther
Hi,
normalerweise ist da die Dateiendung, die habe ich nur anscheinend beim Tippen hier im Forum vergessen :(
Ah ja. Nämlich welche?
Copy & Paste soll da übrigens Wunder bewirken... ;)
An was könnte es denn sonst noch liegen?
Sonst fällt mir nur noch auf, dass du beim onmouseout nicht dasselbe Bild wiederherstellst, wie ursprünglich angezeigt. Als Besucher würde mich das wahrscheinlich irritieren: Beim Laden der Seite sehe ich "button.jpg", nach dem mouseover "button_over.gif" (?), und nach dem mouseout schließlich "button_out.gif".
Ansonsten bin ich momentan auch ratlos, denn abgesehen von den zwei Punkten, die ich angesprochen habe, sieht dein Beispiel für mich eigentlich korrekt aus - bis auf einen formalen Fehler: Das alt-Attribut ist in HTML Pflicht für das img-Element. Das Fehlen eines alt-Attributs hat aber nichts mit deinem Problem zu tun.
Gibt es die Problemseite online, so dass man sich das mal im Kontext ansehen könnte?
So long,
Martin
Hi,
Ansonsten bin ich momentan auch ratlos...
es könnte sein, dass es die "button_out.gif" nicht gibt. Vielleicht ist es ja auch eine jpg-Datei.
Sonst fällt mir aber auch nix mehr ein. ^^
MfG Hopsel
Hallo,
nein die Seite liegt nur auf meiner HDD..
Naja dann danke für eure Hilfe, werde noch ein bisschen rumprobieren, vielleicht funktioniert es ja irgendwann
gruß,
günther s
Hallo Günther,
Naja dann danke für eure Hilfe, werde noch ein bisschen rumprobieren, vielleicht funktioniert es ja irgendwann
Eine CSS-Lösung ist mit ein bisschen Kenntnis der Materie vermutlich einfacher umzusetzen.
Grüße
Roland
Hi,
da Du offensichtlich kein Freund von Copy&Paste bist:
<img border="0" src="button.jpg" onMouseout
Der onMouseOver-Bilderwechsel klappt hervorragend, nur der onMouseOut
onMouseout
onMouseout
ersetzt und dann ging beides - der onMouseOver-Bilderwechsel und der onMouseOut
Außerdem habe ich auch schon die Befehle onMouseOver und onMouseOut
Außerdem hat das mit dem OnMouseOut
steht die Chance etwa 4:5 daß Du im Quelltext die falsche Schreibweise verwendet hast.
freundliche Grüße
Ingo