2012-07-24 62 views
0

我有一个简单的下拉菜单,但是当它使用不起作用时,我认为JavaScript存在问题,因为它只是不停地弹跳!下拉菜单,CSS,HTML和JavaScript: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/

+0

[的jsfiddle(http://jsfiddle.net/) – 2012-07-24 09:53:25

+0

谢谢,我加了一个! – RuFFCuT 2012-07-24 09:58:15

回答

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*/ 
} 
+0

很好,谢谢,有什么方法可以加快下降速度? – RuFFCuT 2012-07-24 10:06:52

+1

+1保持简单:) – Dipak 2012-07-24 10:06:54

0

这是你在找什么?而不是使用.find('> li')我用.children('a')。同样在.hover()函数中,您缺少鼠标移出功能。

jsFiddle

下面的代码:

$(function(){ 
$('#coolMenu').children('a').hover(function(){ 
    $(this).find('ul') 
    .removeClass('noJS') 
    .slideToggle('fast'); 
},function(){ 
    $(this).find('ul') 
    .addClass('noJS') 
    .slideToggle('fast'); 
    }); 
});