【发布时间】:2020-03-04 10:11:26
【问题描述】:
我的一个项目中有以下代码。它显示菜单项。我想要的是,当有人单击在特定列表项中找到的链接时,该特定列表项的背景颜色应该会改变。
这里我使用灰色进行演示。
当用户单击另一个列表项时,先前单击的列表项应恢复为原始颜色,当前列表项应变为灰色。除此之外,我希望将当前选定列表项的文本更改为白色。
我尝试更改a:visited 的样式,但没有成功。
任何帮助将不胜感激。
$('a').click(function(){
$(this).addClass("visited");
});
ul {
list-style-type: none;
}
.box li a {
font-size: 18px;
text-decoration: none;
color: black;
padding-left: 15px;
display: block;
height: 60px;
line-height: 60px;
}
.box li.active {
background-color: #ad2a2a;
font-weight: bold;
color: white;
}
.box li:hover {
background-color: rgba(198, 19, 52, 0.4);
}
.box li {
background-color: #e3e2e2;
margin-bottom: 1px;
position: relative;
transition: .2s;
margin-right: 10px;
}
a.visited {
color: #ffffff;
}
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
<ul class="box">
<li onclick="this.style.backgroundColor = 'grey';"><a href="#">Menu Item 1</a></li>
<li onclick="this.style.backgroundColor = 'grey';"><a href="#">Menu Item 2</a></li>
<li onclick="this.style.backgroundColor = 'grey';"><a href="#">Menu Item 3</a></li>
<li onclick="this.style.backgroundColor = 'grey';"><a href="#">Menu Item 4</a></li>
<li onclick="this.style.backgroundColor = 'grey';"><a href="#">Menu Item 5</a></li>
</ul>
【问题讨论】:
-
使用 $("a").removeClass("visited");在添加类行之前。它会在分配新的之前删除所有突出显示的
标签: javascript jquery html css