带有jquery的子菜单无法正常工作

时间:2014-03-24 22:58:07

标签: javascript jquery html css

我的流程:

我使用jQuery进行悬停效果,当我将鼠标悬停在列表项中时,我想找到一个子菜单,然后我使用fadeToggle效果。

它就像,当我将鼠标悬停在它上面时,它会查找子列表项目,如果显示它,它将隐藏它是否隐藏它将显示。

如果人们一遍又一遍地快速通过菜单,我会使用stop方法来避免一些奇怪的效果。

我的问题:

我认为我的想法正确但不幸的是我遇到了问题。

子菜单项显示在#banner-container后面的其他元素后面,因此子菜单项不可见。

我曾尝试过这些职位,但到目前为止还没有成功,有谁知道如何解决这个问题?

我在哪里可以看到我的问题:

http://jsfiddle.net/jcak/9EcnL/6/

HTML:

<nav id="menu">
    <ul>    
        <li><a href="index.html">Home</a>
            <ul>
                <li><a href="#">Link 1</a></li>
                <li><a href="#">Link 2</a></li>
                <li><a href="#">Link 3</a></li>
                <li><a href="#">Link 4</a></li>
            </ul>
        </li>
        <li><a href="procuts.html">Procuts</a>
            <ul>
                <li><a href="#">Link 1</a></li>
                <li><a href="#">Link 2</a></li>
                <li><a href="#">Link 3</a></li>
                <li><a href="#">Link 4</a></li>
            </ul>
        </li>
        <li><a href="#">About</a></li>
        <li><a href="#">Contacts</a></li> 
   </ul>
</nav>   

jQuery的:

$('li').hover(function(){
    $(this).find('ul>li').stop().fadeToggle(300);
});

CSS:

#menu ul li ul li {display:none;}

#menu-container
{

    background:green;
    width:100%; 
    height:46px; 
    float:left;  
    z-index:7;
}

#menu
{
    width:960px; 
    height:auto; 
    margin:0 auto 0 auto;
}

#menu ul
{
    list-style-type:none;
}

#menu ul li 
{
    float:left; 
    height:46px;
    line-height:46px; 
    font-weight:300;

}

#menu ul li a
{
    text-decoration:none;
    color:#ccc;  
    display:block; 
    margin-right:5px; 
    height:46px; 
    line-height:46px; 
    padding:0 5px 0 5px;
    font-size:20px; 

}

#menu ul li a:hover
{
    color:#fff;
}

1 个答案:

答案 0 :(得分:1)

你可能想要这样的东西,对吧?

http://jsfiddle.net/9EcnL/3/

你的javascript很好,你只是忘了在jsfiddle选项中添加jQuery库。我添加了一些CSS来使子菜单显示得更好。

#menu ul li 
{
    display: inline-block;
    float:left; 
    height:46px;
    position: relative;
    line-height:46px; 
    font-weight:300;

}

#menu ul li a
{
    text-decoration:none;
    color:#ccc;  
    display:block; 
    margin-right:5px; 
    height:46px; 
    line-height:46px; 
    padding:0 5px 0 5px;
    font-size:20px; 

}

#menu ul li a:hover
{
    color:#fff;
}
#menu ul li ul {
    position: absolute;
    left: 0;
    -webkit-padding-start: 0;
    width: 300px;
}
#menu ul li ul li
{
    color:#fff;
}