我想创建一些切换按钮。但是在下面的代码中,根据我的说法,按钮2的起始值是'true',而在document.load上它应该自动更改。但是在运行时,它不会改变按钮状态。 实际上,所有这些HTML文件都将在C ++程序中用作字符串,其中将从服务器检索按钮的起始值。
这是我的代码。 如果你想建议新的逻辑,请做。 : - )
var st = [false, false, false];
document.onload = function WL(a) {
st = [false, true, false]
for (i = 0; i < 3; i++) {
oof(i);
}
};
function oof(a) {
p = document.getElementById(a);
cv = p.value;
if (st[a] == false) {
cv = p.value = p.innerHTML = "On";
p.style.backgroundColor = "#4CAF50";
st[a] = true;
// prc(a);
} else if (st[a] == true) {
cv = p.value = p.innerHTML = "Off";
p.style.backgroundColor = "#f44336";
st[a] = false;
// prc(a);
}
}
function prc(b) {
r = "?p=" + b;
var a = document.createElement("form");
a.setAttribute("method", "post");
a.setAttribute("action", r);
a.style.display = "hidden";
document.body.appendChild(a);
a.submit()
};
.b{background-color:#f44336;border:0;color:white;padding:15px 32px;text-align:center;display:inline-block;font-size:16px;margin:10px 0 10px 0; width: 100%; height: 200px}
.b:hover{background-color:#4caf50;}
.b:active{background-color:#008cba;}
<button class=b value=Off id=0 onclick="oof('0')">Off</button> <br />
<button class=b value=Off id=1 onclick="oof('1')">Off</button> <br />
<button class=b value=Off id=2 onclick="oof('2')">Off</button>
答案 0 :(得分:1)
我发现您的代码有两个问题:
window.onload
代替document.onload
;
语句和要在循环中执行的代码块之间使用for
。 所以,行:
for (i = 0; i < 3; i++); {
应该是:
for (i = 0; i < 3; i++) {
答案 1 :(得分:0)
我做了一个简单的测试:
test_list = [test_list[i].insert(1, 0) for i in range(len(test_list))]
我发现,<html>
<head>
<script>
document.onload = console.log
</script>
</head>
<body>
</body>
</html>
永远不会发射。但是,document.onload
以及window.onload
都有效。
那就是说,你最好使用document.body.onload
而不是最佳做法:
addEventListener