1

我需要创建一个与此相同的菜单:

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。此外,如果您在父列表项之间单击,它需要像在该菜单上一样切换,但如果我再次单击同一个打开的列表项,它需要关闭(向上滑动。)

非常感谢这一点,因为我花了半天时间试图弄清楚。还有如何针对孩子李,我试过这个:

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

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

但什么都没有。

4

1 回答 1

1

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

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

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

于 2012-07-04T22:50:16.340 回答