Javascript 我需要帮助,有人能解释一下为什么我的setinterval行为愚蠢吗?

Javascript 我需要帮助,有人能解释一下为什么我的setinterval行为愚蠢吗?,javascript,setinterval,Javascript,Setinterval,我试着为代码设置间隔,但它只移动一次 function moveAllTriangles(){ var spike = document.getElementById("spike"); var mg = setInterval(function(){moveTriangle();},1125); function moveTriangle(){ var moved = 100; spike.style.left = (750 - move

我试着为代码设置间隔,但它只移动一次

function moveAllTriangles(){
    var spike = document.getElementById("spike");
    var mg = setInterval(function(){moveTriangle();},1125);
    function moveTriangle(){
        var moved = 100;
        spike.style.left = (750 - moved) + 'px';
        moved++;  
    }
}

请解释为什么会出现这种情况,谢谢。

为了更清楚地说明这一点,您似乎遇到了一些问题:您在间隔内重新定义了移动,因此每次运行时,它都会被设置回100

您需要在间隔之外初始化它

function moveAllTriangles(){
    var spike = document.getElementById("spike");
    var moved = 100;

    function moveTriangle(){
        spike.style.left = (750 - moved) + 'px';
        moved++;  
    }

    var mg = setInterval(moveTriangle, 1125);
}

此外,如果使用函数名或闭包,则不需要使用闭包,只需传递已定义函数的名称即可。

Define'breake';现在正在发生什么,应该发生什么而当前没有发生?因为您每次都将变量重置回100。您好!请阅读and。另外,不要使用函数{moveTriangle;},只需使用moveTriangle。为什么脱离主题??在我看来,这个问题很清楚。对新来的人仁慈一点!