2012-07-04 98 views
1

我需要建立同这一个菜单:jQuery的简单的菜单

http://www.girard-perregaux.com/collection/univers-en.aspx?type=1

请单击,然后在制造商的集合,然后再打开制造商关闭。正如你首先看到的那样,它会滑落,然后它只是改变链接而不会再次滑动,直到你点击同一个打开的元素。

我第一次尝试这样的:

$('ul.sub-menu').hide(); 
$('.sf-menu').children('li').click(function(){ 
    $(this).children(".sub-menu").slideToggle('slow'); 
    $('ul.sub-menu').hide(); 

它的工作,但它的点击菜单上,而不是仅仅改变列表项,每次上下滑动。所以我发现我需要以某种方式针对儿童li元素而不是ul。此外,如果你parrent列表项之间点击,它需要切换这样的菜单上,但如果我在同一个打开的列表项再次点击,它需要关闭(向上滑动)

非常感谢这是我半年时间一天试图找出答案。另外如何瞄准儿童李,我试过这个:

$('.sf-menu').children('li').click(function(){ 

$(this).children(".sub-menu li") 

但没什么。

回答

1

您可以尝试点击绑定到子菜单和使用e.stopPropagation()e.stopImediatePropagation()http://jsfiddle.net/7eCjd/

$menu.find(">li>ul").on("click", function(e) { 
    e.stopPropagation(); 
    e.stopImediatePropagation(); 
}); 

这将不允许子菜单关闭,当你点击它们。

+0

谢谢rcdmk,我可以看到多数民众赞成工作在jsfiddle,但由于某种原因,它不想在我的WordPress的网站上工作:tigontel.com,你可以在脚注中看到脚本。 –

+0

最后,它的工作。我的网站使用旧的1.4.7 jQuery和方法“上”没有工作。 谢谢你的伴侣,你为我节省了数小时的工作时间。 –

+0

没问题。很高兴你解决了你的问题。 – rcdmk