作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的一个元素中有以下代码。它显示菜单项。我想要的是,当有人单击在特定列表项中找到的链接时,该特定列表项的背景颜色应该改变。
这里我使用灰色进行演示。
当用户单击另一个列表项时,先前单击的列表项应返回到原始颜色,当前列表项应变为灰色。除此之外,我希望当前选定的列表项的文本更改为白色。
我尝试更改 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>
最佳答案
更改 CSS 和 Jquery
.box li.visited{
background:gray;
}
.box li.visited a{
color: #ffffff;
}
$('a').click(function(){
$('.box li').removeClass("visited");
$(this).parent().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;
}
.box li.visited{
background:gray;
}
.box li.visited a{
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><a href="#">Menu Item 1</a></li>
<li><a href="#">Menu Item 2</a></li>
<li><a href="#">Menu Item 3</a></li>
<li><a href="#">Menu Item 4</a></li>
<li><a href="#">Menu Item 5</a></li>
</ul>
关于javascript - 单击超链接更改列表元素的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60523633/
我是一名优秀的程序员,十分优秀!