javascript - 单击时导航栏未更新为事件状态

标签 javascript html css

我有一个简单的导航栏,我试图在单击时使背景变为绿色。但是它似乎不起作用。

当我将鼠标悬停在链接上时,背景变为绿色并且工作正常。但是我无法得到它,所以当我点击链接时背景保持绿色,如果我点击另一个链接,新的事件变为绿色,而前一个事件变为白色。

$(".sidebar ul li").on("click", function() {
  $(".sidebar ul li").removeClass("active");
  $(this).addClass("active");
});
.sidebar {
  margin: 0;
  padding: 0;
  width: 276px;
  background-color: #ffffff;
  position: fixed;
  height: 100%;
}

.sidebar a {
  display: block;
  color: #444444;
  padding: 4px 0px 4px 15px;
  text-decoration: none;
  font-size: 14px;
}

.sidebar a:hover {
  border: 1px;
  border-collapse: #1aa322;
  background-color: #1aa322;
  color: #ffffff;
}

.sidebar li.active {
  color: #ffffff;
  background-color: #1aa322;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="sidebar">
  <div id="logo">
    <IMG SRC="img/logo.png" ALT="Logo">
  </div>
  <div>
    <div id="menu-header">
      <p>INTRODUCTION</p>
    </div>
  </div>
  <ul>
    <li class="" id=menu>
      <a href="#Welcome">Welcome</a>
    </li>
    <li class="" id=menu>
      <a href="#Authentication">Authentication</a>
    </li>
    <li class="" id=menu>
      <a href="#Pagination">Pagination</a>
    </li>
    <li class="" id=menu>
      <a href="#Errors">Errors</a>
    </li>
  </ul>

最佳答案

将 jquery 链接添加到您的代码

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

$(".sidebar ul li").on("click", function () {
    $(".sidebar ul li").removeClass("active");
    $(this).addClass("active");
});
.sidebar {
  margin: 0;
  padding: 0;
  width: 276px;
  background-color: #ffffff;
  position: fixed;
  height: 100%;
}

.sidebar a {
  display: block;
  color: #444444;
  padding: 4px 0px 4px 15px;
  text-decoration: none;
  font-size: 14px;
}

.sidebar a:hover {
  border: 1px;
  border-collapse: #1aa322;
  background-color: #1aa322;
  color: #ffffff;
}

.sidebar li.active {
  color: #ffffff;
  background-color: #1aa322;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="sidebar">
    <div id="logo">
        <IMG SRC="img/logo.png" ALT="Logo">
    </div>
    <div>
        <div id="menu-header">
            <p>INTRODUCTION</p>
        </div>
    </div>
    <ul>
        <li class="" id=menu>
            <a href="#Welcome">Welcome</a>
        </li>
        <li class="" id=menu>
            <a href="#Authentication">Authentication</a>
        </li>
        <li class="" id=menu>
            <a href="#Pagination">Pagination</a>
        </li>
        <li class="" id=menu>
            <a href="#Errors">Errors</a>
        </li>
    </ul>

关于javascript - 单击时导航栏未更新为事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56288754/

相关文章:

css - 为什么 <body> 不扩展以适应其内容?

css - 如何让这个 css 在 Chrome 中正确显示?

html - 如何在动态 img 标签中添加边框?

javascript - 如何有效地散列图像以在浏览器中进行索引搜索?

javascript - 每次单击时都尝试单击 div 并在类中触发函数...在控制台中显示 TypeError

javascript - 渲染后调用react componentDidMount执行

javascript - 在只有 xPath、anchorOffset 和 focusOffset 的 html 页面中突出显示文本

javascript - ReactJS 中使用 DangerouslySetInnerHTML 设置的 html 元素的 OnChange 事件

javascript - 当我在 Javascript 中创建新窗口时,为什么无法从 JSON 文件加载图像

javascript - console.log 卡住 javascript 控制台