如何使用 javascript 进行 on/off 切换?
How to make an on/off switch using javascript?
所以当用户点击 link 时,应该显示一个特定的元素,当用户再次点击那个 link 时,该元素应该 hide.I 尝试这样做,但是有一个我的 code.It 问题只发生 once.I 想无限发生 times.Can 有人帮忙吗?
<html>
<head>
<style>
#test {
width: 200px;
height: 200px;
background-color: black;
display: none;
}
</style>
</head>
<body>
<script type="text/javascript">
window.onload = function() {
var yes = 10;
for (i = 0; i < 100; i++) {
if (yes == 10) {
document.getElementById("test1").onclick = function() {
document.getElementById("test").style.cssText = "display:block;"
yes = yes + 1;
if (yes == 11) {
document.getElementById("test1").onclick = function() {
document.getElementById("test").style.cssText = "display:none;"
yes = yes - 1;
}
}
}
}
}
}
</script>
<a id="test1" href="#">link</a>
<div id="test"></div>
</body>
</html>
你应该只设置一次onclick
。
编写函数,使其首先检查元素是否可见,然后显示或隐藏它。
(您也可以使用 .style.display
而不是 .style.cssText
)
您所做的工作比您需要做的多得多。
只需检查div当前是否显示,如果是,则隐藏它,如果不显示。
您的脚本标签可以缩减为:
<script>
document.getElementById('test1').addEventListener('click', function() {
var theDiv = document.getElementById('test');
if(theDiv.style.display === 'block') {
theDiv.style.display = 'none';
} else {
theDiv.style.display = 'block';
}
});
</script>
不确定你为什么要进行循环,但这里是你如何只用一个监听器来完成点击部分:
var el = document.getElementById("test");
document.getElementById("test1").onclick = function() {
if (el.style.display == "block") {
el.style.display = "none";
} else {
el.style.display = "block";
}
}
#test {
width: 200px;
height: 200px;
background-color: black;
display: none;
}
<a id="test1">link</a>
<div id="test"></div>
所以当用户点击 link 时,应该显示一个特定的元素,当用户再次点击那个 link 时,该元素应该 hide.I 尝试这样做,但是有一个我的 code.It 问题只发生 once.I 想无限发生 times.Can 有人帮忙吗?
<html>
<head>
<style>
#test {
width: 200px;
height: 200px;
background-color: black;
display: none;
}
</style>
</head>
<body>
<script type="text/javascript">
window.onload = function() {
var yes = 10;
for (i = 0; i < 100; i++) {
if (yes == 10) {
document.getElementById("test1").onclick = function() {
document.getElementById("test").style.cssText = "display:block;"
yes = yes + 1;
if (yes == 11) {
document.getElementById("test1").onclick = function() {
document.getElementById("test").style.cssText = "display:none;"
yes = yes - 1;
}
}
}
}
}
}
</script>
<a id="test1" href="#">link</a>
<div id="test"></div>
</body>
</html>
你应该只设置一次onclick
。
编写函数,使其首先检查元素是否可见,然后显示或隐藏它。
(您也可以使用 .style.display
而不是 .style.cssText
)
您所做的工作比您需要做的多得多。
只需检查div当前是否显示,如果是,则隐藏它,如果不显示。
您的脚本标签可以缩减为:
<script>
document.getElementById('test1').addEventListener('click', function() {
var theDiv = document.getElementById('test');
if(theDiv.style.display === 'block') {
theDiv.style.display = 'none';
} else {
theDiv.style.display = 'block';
}
});
</script>
不确定你为什么要进行循环,但这里是你如何只用一个监听器来完成点击部分:
var el = document.getElementById("test");
document.getElementById("test1").onclick = function() {
if (el.style.display == "block") {
el.style.display = "none";
} else {
el.style.display = "block";
}
}
#test {
width: 200px;
height: 200px;
background-color: black;
display: none;
}
<a id="test1">link</a>
<div id="test"></div>