1

我有一个垂直滑动菜单,如下所示:

    <ul class="menu">
        <li>link</li>
        <li>link</li>
        <li class="more">link with submenu</li>
            <ul class="submenu">
                <li>sub link 1</li>
                <li>sub link 2</li>  
            </ul>
        <li class="more">link with submenu</li>
            <ul class="submenu">
                <li>sub link 1</li>
                <li>sub link 2</li>  
            </ul>
        <li>link</li>  
        <li>link</li>

    </ul>  

jQuery是这样的:

jQuery(document).ready(function($) {

$(".more").click(function() {

$(this).parent().children(".submenu").slideToggle(500); });
});

我的问题是,当我点击“.more”时,每个“.submenu”都在滑动切换(都打开)

我该怎么办,所以只有正确的子菜单被滑动切换?

谢谢你。

4

2 回答 2

6

删除对 的调用.parent()。此外,您.submenu应该嵌套<li>它所属的 中,留下以下 jQuery :

$("li.more").on("click", function() {
    $("ul.submenu", this).slideToggle(500);
});

这个标记:

<ul class="menu">
    <li>link</li>
    <li>link</li>
    <li class="more">
        link with submenu
        <ul class="submenu">
            <li>sub link 1</li>
            <li>sub link 2</li>  
        </ul>
    </li>
    <li class="more">
        link with submenu
        <ul class="submenu">
            <li>sub link 1</li>
            <li>sub link 2</li>  
        </ul>
    </li>
    <li>link</li>  
    <li>link</li>
</ul>
于 2012-06-06T15:08:17.037 回答
0

这个?

$(this).next().eq(0).slideToggle(500); });
于 2012-06-06T15:18:01.553 回答