使用jquery制作垂直滑动菜单

时间:2013-07-18 10:35:11

标签: javascript jquery html user-interface

这是我的HTML:

<ul id="dmenu">
    <li><a href="#">menu item one</a></li>

    <li><a href="#">menu item two</a>
            <ul class="displayNone">
                <li><a href="#">menu item one</a>
            </ul>
    </li>
</ul>

当用户点击其中一个标签时,我希望我的代码检查父标签中是否有任何ul标签。如果有,我想防止a标签的默认动作和slideToggle子ul元素

我的jquery atm:

$('#dmenu > a').click(function(e) {
    if (this.parent().has('ul')) {
        e.preventDefault();
        $(this).children().slideToggle();
    }
});

1 个答案:

答案 0 :(得分:1)

您正在对a

的孩子进行幻灯片切换

$(this).children().slideToggle();更改为

$(this).parent().children('ul').slideToggle();

您的选择器#dmenu > a也是错误的 - 您的顶级菜单没有该ID,如果确实没有直接锚点作为ul的子项 - 删除>并添加ID dmenu向您ul或容器元素

修改

正如Austin所指出的,由于您有嵌套列表,因此您可能希望将点击事件限制在顶级,以便您可以使用#dmenu > li a

Example