jquery - 单击 LI,显示/隐藏 UL

标签 jquery drop-down-menu menu navigation

我正在尝试进行切换导航,但我似乎无法弄清楚我的代码出了什么问题。这非常困惑,因为我使用的是 CMS,它创建了列表菜单中使用的 id 和类。理想情况下,我会给列表起一个更好的名称。

我已将代码发布到 https://jsfiddle.net/chachacallis/amfmsors/1/

$(document).ready(function () {
    $('ul ul').hide();
    $('ul li span.section_title a').removeAttr("href");
    $('ul li span.section_title > a').click(function (event) {
        $('ul ul').hide('slow');
        $(this).parent().find('ul').toggle('slow');
    });
});

已更新 如果我不希望对主页和其他没有子菜单的项目禁用默认操作怎么办?如何将其添加到现有代码中?

最佳答案

首先,你的 jsFiddle 不包含 jQuery,所以它什么也没做。其次,从 a 元素中删除 href 属性会使它们不可点击。如果您想停止点击时遵循的链接操作,您需要在引发的事件上使用 preventDefault() 。最后,你的 DOM 遍历不正确。您需要使用 closest('li').find(),因为 aparent() 是一个 span 不包含 ul。将所有这些付诸实践,您会得到如下结果:

$(document).ready(function () {
    $('ul ul').hide();
    $('ul li span.section_title > a').click(function (e) {
        e.preventDefault();
        $('ul ul').hide('slow');
        $(this).closest('li').find('ul').toggle('slow');
    });
});

Working fiddle

关于jquery - 单击 LI,显示/隐藏 UL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29801503/

相关文章:

javascript - Jquery 在鼠标按钮按住时自动递增 css 属性

javascript - 在没有页面加载的情况下多次操作 DOM 中的选择选项选定值

php - 使用 Javascript 添加一个选择框;到由 PHP 填充的 html 表单

javascript - 将 ul 添加到现有 ul 中的 li 元素

c++ - 通过选择 'Quit' 菜单项关闭应用程序 - wxWidgets 3.0

jQuery 移动元素并页面闪烁

javascript - 如何从 HTML 文本中获取具有指定选择器的所有类

javascript - 用 Selenium 刮和点击表格

html - 如何扩展我的 CSS3 菜单并减小其宽度

python-3.x - 无法使用Selenium(Python)从Google下拉菜单中进行选择