这是我到目前为止的代码

<div>
    <img src="robot.png" id="robotPic">
</div>
<br />
<br />
<input type="button" name="Start" value="Start" id="Start" onclick="moveImage();">
<script type="text/javascript">
var moving = false;
var screenWidth = window.innerWidth;
var i = 0;

function moveImage() {
    if (!moving) {
        moving = true;
        var robotMoving = setInterval(function() {
            document.getElementById("robotPic").style.paddingLeft = i + "px";
            i = i + 10;
        }, 500);
    } else {
        clearInterval(robotMoving);
    }
}
</script>


无论出于何种原因,当我出于某种原因再次单击robotPic按钮时,Start都不会停止移动,并且我没有被踩到

最佳答案

您的间隔引用robotMoving仅存在于该功能范围内。这意味着每次您运行该函数(并且多次运行)时,它都设置为undefined。要解决此问题,请将变量robotMoving移动到该函数的外部,然后从内部修改其值。

07-27 17:42