【发布时间】:2015-08-16 19:06:03
【问题描述】:
我正在尝试使用 JavaScript 在被选中后更改元素的背景颜色,并确保一次只有一个元素具有特定的背景颜色。一旦用户选择了不同的元素,我希望将之前选择的元素替换为不同的背景颜色。目前我只能通过选择每个元素来切换单个元素。我需要能够选择一个元素并应用新的背景颜色,然后让 JavaScript 将先前活动元素的背景颜色更改为不同的颜色(少点击一次)。
我正在尝试做的与现代导航栏或列表项非常相似,其中一次只有一个元素是“活动的”,并且背景颜色与同一 div、行等中的其他元素不同。
关于我的工作的注意事项我正在使用引导程序,并且不想在这个特定项目中使用 jQuery。
CSS:
<!DOCTYPE html>
<html lang="en">
<head>
<style>
h4 {
border: 1px solid black;
border-radius: 8px;
padding: 10px 2px 10px 2px;
margin: 20px 20px 0px 20px;
background-color: #F0F0F0;
border-color: #F8F8F8;
color: #505050;
cursor: pointer;
}
.active {
background-color: #99E6FF;
}
</style>
</head>
</html>
HTML:
<div id="pTwoRowOne">
<div class="row">
<div class="col-md-4 row row-centered">
<h4 id="techBio" class="test">Biology</h4>
</div>
<div class="col-md-4 row row-centered">
<h4 id="techCart" class="test">Cartography</h4>
</div>
<div class="col-md-4 row row-centered">
<h4 id="techChem" class="test">Chemistry</h4>
</div>
</div>
</div>
JavaScript:
document.getElementById("techBio").onclick=function() {
document.getElementById("techBio").classList.toggle('active');
}
document.getElementById("techCart").onclick=function() {
document.getElementById("techCart").classList.toggle('active');
}
document.getElementById("techChem").onclick=function() {
document.getElementById("techChem").classList.toggle('active');
}
可以在这里看到一个例子:http://jsbin.com/fugogarove/1/edit?html,css,js,output
如果需要澄清,请告诉我。
【问题讨论】:
标签: javascript css twitter-bootstrap dom