JavaScript切换按钮不会更改document.load上的状态

时间:2018-06-13 20:01:12

标签: javascript html arrays onload

我想创建一些切换按钮。但是在下面的代码中,根据我的说法,按钮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>

2 个答案:

答案 0 :(得分:1)

我发现您的代码有两个问题:

  1. 尝试使用window.onload代替document.onload
  2. 您不应在;语句和要在循环中执行的代码块之间使用for
  3. 所以,行:

    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