jquery - 试图突出显示活动菜单项
问题描述
这是我的显示侧边栏菜单的 HTML:
<div class="sidebar">
<a class="active" href="<website>/humrec.php">HR Homepage</a>
<a href="<website>/hrbenefits.php">Benefits Information</a>
<a href="#contact">Scheduling</a>
<a href="#about">Links</a>
</div>
这是我拥有的 jQuery 代码,但仍然无法正常工作:
$(document).ready(function(){
$(".sidebar a").click(function ( e ) {
e.preventDefault();
$(".sidebar a.active").removeClass("active"); //Remove any "active" class
$("a", this).addClass("active"); //Add "active" class to selected tab
// $(activeTab).show(); //Fade in the active content
});
});
解决方案
你的逻辑几乎是正确的,但问题是$("a", this)
。a
该选择器正在寻找this
. 问题是刚刚被点击this
的a
那个,所以你正在寻找一个a
与a
你所拥有的 HTML 结构不匹配的 inside。
要解决问题,您只需要使用$(this)
来引用a
被点击的内容:
jQuery(function($) {
$(".sidebar a").click(function(e) {
e.preventDefault();
$(".sidebar a.active").removeClass("active");
$(this).addClass("active");
});
});
.active {
color: #C00;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="sidebar">
<a class="active" href="<website>/humrec.php">HR Homepage</a>
<a href="<website>/hrbenefits.php">Benefits Information</a>
<a href="#contact">Scheduling</a>
<a href="#about">Links</a>
</div>
推荐阅读
- c# - 在 c# 中使用 linq 将值列表分配给另一个列表
- linux - Nano - 文件已被编辑 - 如何切换到打开的文件?
- gremlin - 使用 gremlin 测试和模拟 ScalaGraph
- python-3.x - Python TypeError 比较 str 和 int
- reactjs - react-latex 分数线不显示
- html - 根据测验分数在js视图中显示一个级别
- macos - Pygame 窗口在 Mac OS Catalina 上不显示
- postgresql - 错误:CREATE DATABASE 无法在事务块 SQL 状态中运行:25001 - 使用 PostgresSQL 和 pgAdmin 4
- asp.net - Facebook注册并使用电话号码登录
- html - Apache Beam:如何从 HTML URL 中提取数据?