onMouseOver gefolgt von onMouseOut

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • onMouseOver gefolgt von onMouseOut

    Hallo Leute,

    ich habe das mal eine Frage. Hier mal das Script:

    HTML-Code:
    <script>
    function naviMouseOver(alias) {
    	if($(alias + "_sub")) {
    		if( !($(alias + "_sub").style.display != 'none') )
    			Effect.toggle(alias + '_sub', type, { duration: 0.3 });
    	}
    }
    
    function naviMouseOut(alias) {
    	if($(alias + "_sub")) {
    		if( $(alias + "_sub").style.display != 'none' )
    			Effect.toggle(alias + '_sub', type, { duration: 0.3 });
    	}
    }
    </script>
    
    <div id="homeWrapper" onMouseOut="naviMouseOut('home');">
         <div onMouseOver="naviMouseOver('home');">
              Home
         </div>
         <div id="home_sub">
              <div>Menüpunkt 1</div>
              <div>Menüpunkt 2</div>
         </div>
    </div>
    Eine kleine Beschreibung: Wenn ich mit der Maus über "Home" fahre, werden mir die 2 Menüpunkte angezeigt. Dadurch müsst doch theoretisch der Container mit der ID "homeWrapper" in der Größe nach unten wachsen.
    Wenn ich nun mit der Maus auf Menüpunkt 1 fahre, verschwindet die beiden Menüpunkte wieder. Ich verstehe nicht ganz wieso. Eigentlich gehören Menüpunkt 1 und 2 doch in den Container "homeWrapper" und das Event onMouseOut dürfte noch gar nicht eingetreten sein.

    Warum tritt es trotzdem auf? Merkt sich onMouseOut die Größe des Containers zum ersten Laden der Seite??

    Danke für die Hilfe
    Tarlar

  • #2
    mouseout feuert nicht nur beim Verlassen des Elements „nach außen“, sondern auch, sobald ein Nachfahrenelement überfahren wird.

    Lösungen zu dieser Problematik findest du im Netz.
    Stichworte: Event-Target abfragen, mouseenter/mouseleave.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      ... oder mit CSS :hover stylen.
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #4
        Das Menü hat in einer alten Version mit CSS funktioniert. Ich wollte das nun aber auf JS umschreiben, weil ichs persönlicher leichter zu managen finde.

        mouseout feuert nicht nur beim Verlassen des Elements „nach außen“, sondern auch, sobald ein Nachfahrenelement überfahren wird.

        Lösungen zu dieser Problematik findest du im Netz.
        Stichworte: Event-Target abfragen, mouseenter/mouseleave.
        Dann ist mir nun klar, warum sich das schließt. Finde aber im Moment keine Seite, die mich umfassend aufklärt :-/

        Kommentar


        • #5
          Ich habe es nun mit dem Überprüfen von Event-Target versucht. Das Problem hier ist allerdings, dass die Grenzen an einigen Stellen zusammenfallen und er daher bei zwei Container die verlassen werden nur einmal in onMouseOut springt :-/

          Kommentar


          • #6
            So viel also zum Thema „leichter zu managen“ ...

            Mach's mit CSS, sofern kein wirklich guter Grund dagegen spricht.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Gut, dann für Handy JS zum Klicken und für Rechner mit CSS...danke für die Hilfe

              Kommentar

              Lädt...
              X