0

シンプルなドロップダウンメニューがありますが、正しく使用しないと、JavaScriptが上下にバウンドし続けるため、問題があると思います。

jsFiddleここ:http ://jsfiddle.net/pJeDV/

<div class="container">
<ul id="coolMenu">
<li><a href="#">Lorem</a></li>
<li><a href="#">Mauricii</a></li>
<li>
    <a href="#">Periher</a>
    <ul>
        <li><a href="#">Hellenico</a></li>
        <li><a href="#">Genere</a></li>
        <li><a href="#">Indulgentia</a></li>
    </ul>
</li>
<li><a href="#">Tyrio</a></li>
<li><a href="#">Quicumque</a></li>
</ul>

CSS

#coolMenu,
#coolMenu ul {
    list-style: none;
}
#coolMenu {
    float: left;
}
#coolMenu > li {
    float: left;
}
#coolMenu li a {
display: block;
    height: 2em;
    line-height: 2em;
    padding: 0 1.5em;
    text-decoration: none;
}
#coolMenu ul {
    position: absolute;
    display: none;
z-index: 999;
}
#coolMenu ul li a {
    width: 80px;
}
#coolMenu li:hover ul {
    display: block;
}

/* Main menu
------------------------------------------*/
#coolMenu {
    font-family: Arial;
    font-size: 12px;
    background: #2f8be8;
}
#coolMenu > li > a {
    color: #fff;
    font-weight: bold;
}
#coolMenu > li:hover > a {
    background: #f09d28;
    color: #000;
}

/* Submenu
------------------------------------------*/
#coolMenu ul {
    background: #f09d28;
}
#coolMenu ul li a {
    color: #000;
}
#coolMenu ul li:hover a {
    background: #ffc97c;
}

#coolMenu li:hover ul.noJS {
    display: block; 
}

JavaScript

<script type="text/javascript">
$(function(){
    $('#coolMenu').find('> li').hover(function(){
        $(this).find('ul')
        .removeClass('noJS')
        .stop(true, true).slideToggle('fast');
    });
});
</script>

http://jsfiddle.net/pJeDV/

4

2 に答える 2

2

これが実用的なフィドルです:http://jsfiddle.net/surendraVsingh/pJeDV/6/

Jquery

$(function(){
    $('#coolMenu > li').hover(function(){
        $(this).find('ul').slideToggle();
    });
});

CSS(以下のコードを完全に削除してください)

#coolMenu li:hover ul {
    display:block; /* Remove This*/
}
于 2012-07-24T10:03:09.830 に答える
0

これはあなたが探しているものですか?.find('> li')を使用する代わりに、.children('a')を使用しました。また、.hover()関数内には、mouseout関数がありません。

jsFiddle

コードは次のとおりです。

$(function(){
$('#coolMenu').children('a').hover(function(){
    $(this).find('ul')
    .removeClass('noJS')
    .slideToggle('fast');
},function(){
   $(this).find('ul')
    .addClass('noJS')
    .slideToggle('fast');
    });
});
于 2012-07-24T10:03:54.843 に答える