我需要帮助可能有人请解释为什么我的setinterval表现得很傻?

时间:2017-12-18 20:53:34

标签: javascript setinterval

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

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++;  
    }
}

请解释为什么这会被打破谢谢。

1 个答案:

答案 0 :(得分:2)

为了使这一点更清晰,因为你似乎遇到了一些麻烦:你在你的间隔内重新定义 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);
}

此外,setInterval()采用函数名称或闭包,您不需要来使用闭包,只需传递您已经使用过的函数的名称定义