2012-08-09 46 views
2

jquery:链接不工作我刚刚构建了一个下拉菜单,我想点击下拉,并在其他点击后返回。这完全适用于我使用的切换,但问题是在下拉后,链接不会执行。jQuery:链接后.toggle()

$(函数(){

$("#nav_menu-2 ul.menu ul").css({ display: 'none' }); 


    $("#nav_menu-2 ul.menu #testbutton").toggle(function() { 


     $(this).find('ul.sub-menu') 
      .stop(true, true).delay(50).animate({ "height": "show", "opacity": "show" }, 300); 
    }, function(){ 

     $(this).find('ul.sub-menu') 
      .stop(true, true).delay(50).animate({ "height": "hide", "opacity": "hide" }, 300); 
    }); 

}); 

所以我geuss是,菜单已经删除后,又回到了上一点击,而不是执行的链接。但是因为我是很新的使用Javascript/jQuery的,我不知道我有什么其他选择,任何想法

回答

2

我会改用slideToggle,绑定到按钮的单击事件应该打开菜单:?

$("#nav_menu-2 ul.menu #testbutton").click(function() { 
    $('ul.sub-menu').slideToggle(); 
}); 

您可能需要稍微更改选择器,具体取决于菜单的构建方式。

+0

是的,这个工程! Thnx A LOT :) – Jando 2012-08-09 13:31:09

2

这是一个已知的副作用toggle()。该文件说:

的实施也要求.preventDefault()上的事件,所以链接 不会遵循和按钮将无法点击,如果.toggle()已 被称为元素。

要解决该问题,您必须绑定到click而不是toggle。正如Andrew所说,您可以使用slideToggle()click事件获得相同的行为。

+0

感谢您的解释。 – 2013-02-22 13:25:07