jquery - 当我们点击使菜单高亮显示时,在 <a> 元素上添加事件类

标签 jquery html css

在菜单中,当用户点击元素时,我想用类突出显示,

我有这样的 html :

<div id="menu_wrapper">
    <ul class="art-hmenu">
        <li id="home"><a href="Home.aspx">Home</a></li>
        <li id="ProjectList"><a href="ProjectList.aspx">Project List</a><ul>
            <li id="ProjectListsub1"><a href="subone.aspx">Sub One</a></li>
            <li id="ProjectListsub2"><a href="subtwo.aspx">Sub Two</a></li>
        </ul>
        </li>
        <li id="ProjectChoices"><a href="">Project Choices</a><ul>
            <li id="ProjectChoicessub1"><a href="StudentChoices.aspx">Student Project Choices</a></li>
            <li id="ProjectChoicessub2"><a href="StaffChoices.aspx">Supervisor Project Choices</a></li>
        </ul>
        </li>
        <li id="ProjectAllocationList"><a href="AllocationList.aspx">Project Allocation List</a></li>
        <li id="SubmitProposal"><a href="">Submit Proposal</a><ul>
            <li id="SubmitProposalsub1"><a href="submit.aspx">New Proposal</a></li>
            <li id="SubmitProposalsub2"><a href="reSubmit.aspx">Re-Submit Proposal</a></li>
        </ul>
        </li>
        <li id="StaffRecords"><a href="StaffRecords.aspx">Staff Records</a><ul>
            <li id="Li1"><a href="addStaff.aspx">Add new Staff</a></li>
        </ul>
        </li>
        <li id="StudentRecords"><a href="StudentRecords.aspx">Student Records</a></li>
    </ul>
</div>

当用户点击 <a> 时我想添加类 ="active"

我累的是这样的:

$(document).ready(function () {
            $(".art-hmenu>ul>li").on("click", "a", function (event) {
                debugger;
                $("#menu_wrapper>ul>li.active").removeClass("active");
                $("#menu_wrapper>ul>li>a.active").removeClass("active");
                $(this).addClass("active");
            });
        });

但我无法在 <a> 上添加类(class)

最佳答案

这是错误的:$(".art-hmenu>ul>li").on(

你应该有 $("ul.art-hmenu>li").on(

在你的 html 中 ul元素有类 .art-hmenu , 所以你想要 ul.art-hmenu .

您可能想像这样简化您的代码:

$(document).ready(function () {
    $("ul.art-hmenu>li").on("click", "a", function (event) {
        debugger;
        $("#menu_wrapper .active").removeClass("active");
        $(this).addClass("active");
    });
});

演示 here

如果您只想将该类添加到第一个 <a> (不是子菜单)考虑 this demo

关于jquery - 当我们点击使菜单高亮显示时,在 <a> 元素上添加事件类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19034503/

相关文章:

html - CSS 滑动窗口圆 Angular 按钮 : how to avoid the "dead" area on right side of "window"?

javascript - 移动多个元素并将它们放回原位

html - 链接没有悬停效果

javascript - jQuery 延迟 ajax 缓存

php - 如何在wordpress自定义导航中显示子项

html - 将鼠标悬停在特定元素图像上时尝试显示描述文本

javascript - TailwindCSS - 添加组件时内容大于屏幕

php - 根据数据库输出在单选按钮上加载具有特定背景颜色的页面

javascript - Jquery 和 Css 以及数学 : dots in a circle to converge in one point

asp.net - 禁用 ASP.NEt Validtor,使其在回发时被禁用