javascript - 在 <ul><li><a> 的第一级上获取没有 id 和 e.preventDefault() 的 <ul> 列表中的子 <ul>

标签 javascript jquery

我有一些结构如下的菜单:

<ul id="menu">
    <li><a href="#"><span>First level link 1</span></a>
        <ul>
            <li><a href="#"><span>Child link 1</span></a></li>
            <li><a href="#"><span>Child link 2</span></a></li>
        </ul>
    </li>
    <li><a href="#"><span>First level link 2</span></a>
        <ul>
            <li><a href="#"><span>Child link 2</span></a></li>
            <li><a href="#"><span>Child link 2</span></a></li>
        </ul>
    </li>
</ul>

它只需要显示一级 ul li,没问题,但它需要通过点击二级链接来显示。我不能在 ul 或 li 中使用 id 或 rel attr - 这是我抓 child 的问题。

我的代码是这样的:

var menuRaw = $("ul#menu > li:lt(5)");

    menuRaw.click(function(e){
        e.preventDefault();

        var menuItem = $(this);

        menuRaw.removeClass("selected");
        menuItem.addClass("selected");

        $('#menu ul').hide();
        menuItem.find("ul").show();
    }

它有效,但 e.preventDefault() 阻止了菜单中的所有链接(但在二级链接需要像往常一样工作链接)

抱歉我的英语不好,这是关于 stackoverflow 的第一个问题。

最佳答案

您可以为每个级别选择和处理点击,例如:

// first level links
$("ul#menu > li > a").click(function() {
    e.preventDefault();

    // show sub-menu etc..
}

// second level links (remove this block if you dont want any spl processing here)
$("ul#menu > li > ul > li > a").click(function() {
    return true; // behave like normal links
});

关于javascript - 在 <ul><li><a> 的第一级上获取没有 id 和 e.preventDefault() 的 <ul> 列表中的子 <ul>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13252010/

相关文章:

javascript - React-Redux 容器抛出 "mapStateToProps() in Connect(ModalRoot) must return a plain object. Instead received undefined."

javascript - 使用JS确定范围 slider 背景宽度

javascript - 下拉值根据单选按钮更改

javascript - 如何在 IndexedDB 中创建多个对象存储

javascript - Axios POST 的发送状态和数据未显示在 req.body 中

jquery - CKEditor 聚焦

jquery - 仅悬停在图像上

java - jquery:立即加载/包含 html 代码到 html 文件中?

javascript - Angularjs $超时生成无限循环

php - 输入类型的文件不起作用:ajax到php