Egotrip: onMouseout von onClick Abhängig machen?

<a href="content/test.html" target="content"
onmouseover="menuchange('menu/test.html', 'menu'); Bildwechsel(0, Highlight1)"
onmouseout="menuchange('javascript:history.back()', 'menu'); Bildwechsel(0, Normal1)"
onclick="menuchange('menu/test.html', 'menu'); Bildwechsel(0, Highlight1)">
<img src="menu/image/test.gif">
</a>

Mouseover und Mouseout funktionieren zusammen ganz gut. Probleme haben allerding Mouseout und onClick :(
Mit dem Bildwechsel ist das nicht das Problem. Der kann rausgelassen werden. Was mich stört ist:
Es werden bei onClick zwei Frames geöffnet. Beim onMouseout reagiert nun aber der der Frame Content auf history.back().
Wenn ich nun nochmal auf den Link geh wird auch history.back auf den Menu Frame angewandt...
Warum das passiert ist klar... Nur, was kann ich dagegen machen?
Also das onMouseout nicht mehr nach onClick zum einsatz kommt bzw erst wenn ein anderer onClick verwendet wurde...
In Menu Frame ist halt ein Untermenü welches genau die gleichen Probleme aufwirft.
Frage: Wie kann ich onMouseout jeweils in Abhängigkeit von onClick bringen? (ohne php)

  1. n'abend,

    in #selfhtml wurde (von Marian) auf CSS-basierte Layouts / Navigationsleisten hingewiesen, welches dem OP wohl besser gefiel, als dieses merkwürdige Javascript-Konstrukt. Dennoch:

    Frage: Wie kann ich onMouseout jeweils in Abhängigkeit von onClick bringen? (ohne php)

    Du kannst deinem <a> Element ein weiteres Attribut hinzufügen, bspw. "wasClicked". Im onclick-handler setzt du dieses Attribut auf TRUE. Im onmouseout-handler prüfst du vor der Ausführung deiner Befehle das Attribut wasClicked. Im Falle von FALSE führst du deine Befehle wie gehabt aus, im Falle von TRUE führst du sie nicht aus. Am Ende des onmouseout-handlers setzt du wasClicked wieder auf FALSE (, damit du beim nächsten mouseOut nicht fälschlicherweise etwas vergisst).

    weiterhin schönen abend...

    --
    Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
    sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
    1. Ah Danke :)
      Und sry wegen Höfflichkeitsmängel :)
      Die Etikette ist mir beim Verfassen vollkommen entfallen, genauso wie im Chat darauf xD
      Also nochmal Danke euch beiden.
      Magst du mir bitte vieleicht das mit dem wasClicked ein bisschen ausführlicher erklären, nur aus reiner Neugier :)
      Ich hab zwar den Script wohl dazu gefunden, aber dabei nich verstanden wie jetzt die Abfrage abläuft :(
      Wäre wirklich toll :)

      Schönen Abend noch

      1. n'abend,

        Magst du mir bitte vieleicht das mit dem wasClicked ein bisschen ausführlicher erklären, nur aus reiner Neugier :)

        ich würde das zwar nie so notieren, um aber möglichst nah an deinem Beispiel zu bleiben:

        <a href="content/test.html" target="content"  
        onmouseover="menuchange('menu/test.html', 'menu'); Bildwechsel(0, Highlight1)"  
        onmouseout="if( typeof(this.wasClicked) != 'undefined' && this.wasClicked ){ menuchange('javascript:history.back()', 'menu'); Bildwechsel(0, Normal1);} this.wasClicked = false;"  
        onclick="menuchange('menu/test.html', 'menu'); Bildwechsel(0, Highlight1); this.wasClicked = true;">  
        <img src="menu/image/test.gif">  
        </a>
        

        weiterhin schönen abend...

        --
        Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
        sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
        1. Hallo globe.

          <a href="content/test.html" target="content"

          onmouseover="menuchange('menu/test.html', 'menu'); Bildwechsel(0, Highlight1)"
          onmouseout="if( typeof(this.wasClicked) != 'undefined' && this.wasClicked ){ menuchange('javascript:history.back()', 'menu'); Bildwechsel(0, Normal1);} this.wasClicked = false;"
          onclick="menuchange('menu/test.html', 'menu'); Bildwechsel(0, Highlight1); this.wasClicked = true;">
          <img src="menu/image/test.gif">
          </a>

            
          An Stelle von „&&“ musst du „&amp;&amp;“ notieren.  
            
            
          Einen schönen Montag noch.  
            
          Gruß, Mathias  
          
          -- 
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|  
            
          debian/rules
          
          1. n'abend,

            An Stelle von „&&“ musst du „&amp;&amp;“ notieren.

            Macht der Gewohnheit, odersoähnlichwardasdoch?
            Klar, wir sind ja hier in HTML, nicht ein einem JS-Block, wo amps nicht als Entität geschrieben werden müssen. (ich bezweifle allerdings, dass das dem Fragesteller auf Anhieb eingeleuchtet hätte...)

            weiterhin schönen abend...

            --
            Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
            sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
            1. Hallo globe.

              An Stelle von „&&“ musst du „&amp;&amp;“ notieren.

              Macht der Gewohnheit, odersoähnlichwardasdoch?

              Sicherichmeinjanur.

              Klar, wir sind ja hier in HTML, nicht ein einem JS-Block, wo amps nicht als Entität geschrieben werden müssen.

              Im Idealfall wir die JS-Logik aber sowieso in eine externe Datei ausgelagert, womit man sich um solcherlei Probleme nicht mehr kümmern muss.

              weiterhin schönen abend...

              Danke, ebenfalls.

              Gruß, Mathias

              --
              sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
              debian/rules
              1. n'abend,

                Im Idealfall wir die JS-Logik aber sowieso in eine externe Datei ausgelagert, womit man sich um solcherlei Probleme nicht mehr kümmern muss.

                das versteht sich von selbst. Nur war ich (wieder Mal) zu faul ggf. anfallende Prozeduren, welche einem mit diesem "outsourcing" unweigerlich aufgedrängt werden, zu erklären.

                weiterhin schönen abend...

                --
                Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
                sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|