Günther S: OnMouseOut() funktioniert nicht

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

  1. 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

    1. 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

      1. 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

        1. 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

          --
          "It's amazing I won. I was running against peace, prosperity, and incumbency."
          George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        2. 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

          1. 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.

            CSS-Mouseover-Buttons

            Grüße
            Roland

  2. 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