• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

jquery menue problem

DBlog

Mitglied
hallo hab folgendes Problem

möchte gerne mit jquery beim mouseover auf home tab5 mit einem Fade anzeigen lassen. Und beim mouseout soll es sich wieder schließen.
Mein Problem ist es, dass es sich beim Mouseout zwar schließt, ich deswegen aber nicht auf tab5 klicken kann da er schon verschwunden ist.
kann mir wer weiterhelfen ?

http://dominiksblog.bplaced.net/fadetest.html

code

HTML:
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.10.2.js" type="text/javascript"></script>
<script>
    
    $(document).ready(function() {
                                
                $('#nav_home').mouseenter(function() {
                
                    $('#tab5').fadeIn();
                
                });
                
                $('#tab5').mouseleave(function() {
                
                    $('#tab5').fadeOut();
                
                });    
                
                
                $('#nav_home').mouseleave(function() {
                
                    $('#tab5').fadeOut();
                
                })
            
            
            });
            
    

</script>

<style>
ul
{
list-style-type:none;
margin:0;
padding:0;
overflow:hidden;
}
li
{
float:left;
}
a:link,a:visited
{
display:block;
width:120px;
font-weight:bold;
color:#FFFFFF;
background-color:orange;
text-align:center;
padding:4px;
text-decoration:none;
text-transform:uppercase;
}
a:hover,a:active
{
background-color: gray;
}

#nav {
    margin-top: 100px;
    
}

#tab5 {
    margin-left: 0px;
    display: none;
    position: fixed;
    margin-top: -25px;
    
}

</style>
</head>

<body>

<div id="nav">
<div id="tab5"><a href="#">Tab5</a></div>
<ul>
<li><a id="nav_home" href="#home">Home</a></li>
<li><a href="#news">News</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#about">About</a></li>
</ul>
</div>
</body>
</html>
 
Werbung:
Und wieso musst du dazu jetzt noch einen weiteren Thread eröffnen?

Das ganze Konstrukt ist sinnfrei, aber wenn du es unbedingt so umsetzen willst, dann bau doch in das mouseleave() von #nav_home ein Delay von 2 sec. ein, bevor der fadeOut() getriggered wird.
 
weil ich es noch mal verständlich posten wollte
hab den anderen als Geschlossen gekennzeichnet

das mit delay() ist mir auch eingefallen jedoch ist es nicht die beste Lösung.

gibts keine andere Lösung für mein Problem ?
es gibt sicher websites mit dropdown menues mit einem fade effect oder ?
 
Werbung:
Ich hatte dir in dem anderen Thread geraten, die Aufgabe herunterzubrechen, aber das wurde von dir offensichtlich ignoriert.

Hier liegt dein Problem:
Code:
$('#nav_home').mouseleave(function() {
    $('#tab5').fadeOut();
})

Der Callback soll nur dann getriggered werden, wenn der aktuelle Node nicht $('#tab') ist. Also könntest du eine entsprechende Condition einbauen.

/Hint: Es gibt in jQuery Keywords wie this und event.target.
 
ich sollte vielleicht erwähnen das ich mich mit jquery noch nicht so gut auskenne.
danke derweil für die hilfe, das hier mein Problem liegt weiss ich doch weiss ich nicht wie ich es lösen könnte.
hab schon im Internet nachgeschaut nur nichts hat geklappt auch if conditionen haben nicht funktioniert wahrscheinlich weil ich sie falsch geschrieben habe, nur finde ich leider keine Lösung.
 
Hallo,

ich klink mich mal ein.
Was soll das verweden das tab5?
ein tooltipp oder submenü was halt nur nach oben geht?
wenn zweiteres, nimm einfach ein fertiges und positioniere das sub einfach anders, das brauch in der regen nur 1neue zeile css.
zb das: Accessible Drop Down Menu - CodePen

Cheffchen
 
Werbung:
Zurück
Oben