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 回答