jQuery的菜单问题

问题描述:

谁能帮为什么当我点击菜单链接这是不工作?当我点击菜单时,它不显示下拉菜单。jQuery的菜单问题

请此链接jsfiddle

编辑

现在我改变了它的代码上查看代码。现在,当我点击菜单链接时,它会显示下拉菜单,但当我点击其他地方时,它不会隐藏它。

jsfiddle

+2

请在这里发表您相关的代码。 – PeeHaa 2012-02-21 11:26:10

+1

因为你使用'。点击()'事件,比如'.hover的bug()' – 2012-02-21 11:33:02

+0

它做工精细与悬停,我认为你应该使用点击和模糊 – 2012-02-21 11:44:34

试试这个方法:

$(function() { 
     $('.top-nav li').click(function() { 
      $('ul',this).toggle(); 
     }); 
    }); 

看起来你已经使用了.hover()功能语法click这是行不通的。

而且不要忘了return false;或链接将被紧随其后。或者,您可以使用:e.preventdefault();

return false同时做两e.preventDefault()e.stopPropagtion()。但是为了使用e不应将参数添加到函数:$('.top-nav li').click(function(e) {

这为我工作:

$(function() { 
    $('.top-nav li a').click(function() { 
     //this reveals the ul that is immediately after the clicked item 
     $(this).next('ul').toggle(); 
    }); 
});​ 

你可能想增加一个功能,可以隐藏所有其他subnavs当一个人发现,否则你可以让他们全部打开。这应该这样做:

$(function() { 
    $('.top-nav li a').click(function() { 
     //this hides all uls inside top-nav 
     $('.top-nav ul').hide(); 
     //this reveals the ul that is immediately after the clicked item 
     $(this).next('ul').toggle(); 
    }); 
});​ 

希望帮助!

+0

我改变了触发李一。通过这种方式,您可以在top-nav中拥有“非活动”元素。如果触发停留在李,那么,你是对的:) – Heroes182 2012-02-21 11:52:18

+0

与此问题是,当我点击别的地方我的意思是它不隐藏所有下拉菜单空的地方。使用鼠标离开 – 2619 2012-02-21 11:57:47

试试这个

$(function() { 
    $("ul.top-nav li").click(function() { 
    $('ul', this).css("display", "block"); 
    }); 

    $("ul.top-nav li").mouseleave(function() { 
    $('ul', this).css("display", "none"); 
    }); 
}); 
+0

,它隐藏所有下拉菜单。 – 2012-02-22 13:20:49