html 当我点击导航菜单时,我如何激活状态?

yks3o0rb  于 2022-12-09  发布在  其他
关注(0)|答案(7)|浏览(243)

我有一个菜单,包括以下li

<div class="menu">
    <ul>
       <li><a href="index.jsp" class="active">Home</a></li>
       <li><a href="listnews.jsp">News</a></li>
       <li><a href="abc.jsp">ABC</li>
    </ul>
</div>

在这个代码中,主页是激活的。但是当我点击我的新闻页面时,我想激活状态。我该怎么做?谢谢观看。

eh57zj3b

eh57zj3b1#

请添加如下J:
第一个

x6492ojm

x6492ojm2#

您可以使用jQuery来执行此操作,使用下面的脚本:

$(document).ready(function () {
  $('.menu ul li a').click(function () {
     // This will remove active class from other links
    $('.menu ul li').find('a.active').removeClass('active');    
    // This will add active class to the link clicked 
      $(this).addClass('active');
   });
});
ecr0jaav

ecr0jaav3#

下面是使用纯javascript的代码

**英文聊天!!

第一个

fjaof16o

fjaof16o4#

使用一些JS或JQuery,在链接上添加一个click事件并调用一个方法

<div class="menu">
    <ul>
       <li><a href="index.jsp" click="MyMethod">Home</a></li>
       <li><a href="listnews.jsp" click="MyMethod">News</a></li>
       <li><a href="abc.jsp" click="MyMethod">ABC</li>
    </ul>
</div>

在Jquery(或JS)中:执行以下操作:

YourLinkClicked.removeClass('active');
YourLinkClicked.addClass('active');

或者看看这个链接:http://jsfiddle.net/designaroni/E53t9/

g9icjywg

g9icjywg5#

修改@的答案
a)随时待命
B)使用框架(如svelte)
c)使用事件而不是元素本身(更便于访问)。
d)有JSDoc注解(当我的代码陈旧过时时,任何人都可以修改)。
下面是HTML标记(纯HTML):

<div class="navbar">
  <ul>
    <li><a onclick="change(e)" class="active">Link 1</a></li>
    <li><a onclick="change(e)">Link 2</a></li>
  </ul>
</div>

纯JS(带JSDoc):

/**
    * This function is used in the navbar. It gives styles to the active link. 
   * @param {Event | Undefined} e Event (click event).  
*/
const change = (e) => {
        if (!e) e = window.event; // <-- for Chrome <89, Firefox (I forgot versions), and Safari. 
        // If you have been used to JS for a bit, you may think that {} needs to be used above, but no. In modern JS, this is unnecessary. Of course, for multi-line if statements, you do need the brackets. 
        let list = document.querySelectorAll(".navbar ul li a");

        list.forEach(elem => {
            elem.classList.remove("active");
        });
        // Note the below comment is only if you are using a type checker, if you aren't then you can remove this. (the comment).
        // @ts-ignore
        e.target.classList.add('active');
    }
wnvonmuf

wnvonmuf6#

最好且简单的方法是:
1.仅监听列表父级上的事件(ul
1.单击后,查找旧的活动元素并删除其类
1.设置事件目标的活动类
第一个

nxagd54h

nxagd54h7#

下面是我在当前的MVC项目中使用的一些基本函数。
将此添加到母版页或共享页,每次站点重新加载时都需要运行js。
您需要使用jquery
第一个

相关问题