Sebastian: Funktionsaufruf aus event heraus

Hallo zusammen,

ich möchte meinem Menü das Laufen beibringen, oder so ähnlich...

Also ich habe ein horizontales Menü, welches beim Überfahren der einzelnen Einträge die jeweiligen Unterpunkte nach oben aufklappt. Dies geschieht im Moment noch durch sichtbar machen der einzelnen Ebene. Ich möchte aber in Zukunft, dass die Ebene sich von unten nach oben bewegt.

Nun ist meine Frage wie ich es programmiertechnisch anstellen muss, damit ich über die Events onmouseover und onmouseout eine Funktion aufrufe, welche das auch dann noch macht, wenn ich mich mit der Maus über der entsprechenden Ebene befindet und diese sich bewegt.

Dalls also einer einen Hinweis dazu hat, bitte benatworten. Danke!

P.s.: Einfach ein anderes Menü zu nehmen ist aufwendiger, da dies in ein bereits bestehendes CMS-System eingebaut. Deshalb ist es einfacher den Javascript-Teil zu ändern als die übrige Routine.

  1. Hallo Sebastian,

    Also ich habe ein horizontales Menü, welches beim Überfahren der einzelnen Einträge die jeweiligen Unterpunkte nach oben aufklappt. Dies geschieht im Moment noch durch sichtbar machen der einzelnen Ebene. Ich möchte aber in Zukunft, dass die Ebene sich von unten nach oben bewegt.

    um mal mit den CSS-Eigenschaften und "sichtbar" anzufangen, da gibt es ja
    noch display (ausser visibility).
    Für neuere Browser ist über CSS (:hover) auch ohne JavaScript ein Klapp-Menu
    realisierbar.

    Wenn du per JavaScript etwas bewegen möchtest würde ich für Aufklappeffekte
    clip anwenden, efordert dann im CSS eine "position:absolute" bei den betr.
    Elementen.

    Der Wechsel der mouseover nach dem Aufklappen kann notfalls per setTimeout
    (und clear..) für das Wiedereinklappen abgestimmt werden.

    Grüsse

    Cyx23

    1. So weit war mir das klar, aber wahrscheinlich habe ich es falsch formuliert...

      Es ging um die Art wie ich die Funktion in Javascript aufrufen soll.

      <div onmouseover="test(this.id,'up')" onmouseover="test(this.id,'down')">test</div>
      .
      .
      .

      function test(element_id,action) {
        irgendeine anweisung

      if(bedingung) {
          setTimeOut("test()", 500);
        }
      }

      -> geht nicht wirklich

      So hat dazu jemand einen Tipp? Vielleicht ist ja dadurch klarer geworden?

      1. <div onmouseover="test(this.id,'up')" onmouseover="test(this.id,'down')">test</div>

        wieso übergibst du hier die (nichtexistierende) ID?

        function test(element_id,action) {
          irgendeine anweisung

        if(bedingung) {
            setTimeOut("test()", 500);
          }
        }

        -> geht nicht wirklich

        Wo ist der Event?

        Struppi.

      2. Hallo,

        <div onmouseover="test(this.id,'up')" onmouseover="test(this.id,'down')">test</div>

        da meinst du sicher onmouseout beim zweiten Mal?

        Und die ID muss später noch verändert werden wenn ein anders Element
        sichtbar wird, oder du meinst das gerade aufgeklappte Element.

        Beim aufgeklappten Element gilt es dann ein Zuklappen zu verhindern
        solange die Maus drüber ist, also z.B. von dort einen Timeout Löschen
        der sonst wieder zuklappt weil die Maus ja nicht mehr über dem
        aufklappenden Element steht.

        function test(element_id,action) {
          irgendeine anweisung

        if(bedingung) {
            setTimeOut("test()", 500);
          }
        }

        -> geht nicht wirklich

        Eine Funktion die sich selbst aufruft?

        Grüsse

        Cyx23