为什么两个阶段都没有变化:http://jsfiddle.net/WH7Kf/43/

function phase_switch(){
    var phase;
    clicker = document.getElementById("click");
    phase=1
    switch (phase) {
        case 1:
            clicker.onclick = do_this;
            break;
        case 2:
            clicker.onclick = do_that;
            break;
    }

    function do_this (){
        alert("this");
        phase==2;
    }
    function do_that (){
        alert("that");
        phase==1;
    }
}

window.addEventListener("load", phase_switch());


如您所知,第一阶段是唯一触发的阶段。为什么第二阶段不触发?

最佳答案

您可以更简单地做到这一点:

var clicker = document.getElementById("click");
clicker.onclick = do_this;
function do_this (){
    alert("this");
    clicker.onclick = do_that;
}
function do_that (){
    alert("that");
    clicker.onclick = do_this;
}


http://jsfiddle.net/Ncz7w/

关于javascript - 如何使用javaScript进行相移?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23485965/

10-16 17:58