在我拥有的测试网页上,有一个如下链接:
<a href="default.html?tab=1" id="t1" onclick="switchf('home',this)">HOME</a>
它的风格是这样的:
nav > a {
text-decoration: none;
color: #0000aa;
display: inline-block;
width: 80px;
padding: 0 10px;
}
nav > a:hover {
background-color: #eeeeee;
}
和switchf()
(开关字段)是这样的:
function switchf(field,tab) {
document.getElementById("home").style.display = "none";
document.getElementById("about").style.display = "none";
document.getElementById("account").style.display = "none";
document.getElementById("contact").style.display = "none";
document.getElementById("t1").style.backgroundColor = "#dddddd";
document.getElementById("t2").style.backgroundColor = "#dddddd";
document.getElementById("t3").style.backgroundColor = "#dddddd";
document.getElementById("t4").style.backgroundColor = "#dddddd";
document.getElementById(field).style.display = "inline-block";
tab.style.backgroundColor = "#cccccc";
}
该链接基本上充当标签,以显示另一件事。还有三个喜欢的。
JavaScript 可以很好地切换选项卡,但是当我在使用后将鼠标悬停在选项卡上时switchf()
,它不再改变颜色。
我的代码有问题吗?
谢谢。
编辑
这就是我修复我的方法:
首先,我添加class="tab"
了所有链接,所以它们看起来像这样:
<a href="?tab=1" id="t1" class="tab" onclick="switchf('home',this)">HOME</a><br />
其次,我更改了javascript,使函数switchf()
如下所示:
function switchf(field,tab) {
document.getElementById("home").style.display = "none";
document.getElementById("about").style.display = "none";
document.getElementById("account").style.display = "none";
document.getElementById("contact").style.display = "none";
var t = document.getElementsByClassName("tag"); // here is different
for(var i = 0; i < t.length; i++) {
t[i].style.backgroundColor = "#dddddd";
t[i].addEventListener("mouseover");
t[i].addEventListener("mouseout");
}
document.getElementById(field).style.display = "inline-block";
tab.style.backgroundColor = "#cccccc";
}
它奏效了。