Dies ist der Code, den ichclearInterval nicht in Javascript arbeiten
<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>
Aus welchem Grund auch immer, so weit haben, die robotPic
bewegt sich nicht mehr, wenn ich die Start
Taste wieder aus irgendeinem Grund klicken und ich nicht understabd
* robotMoving * ist lokal für die Funktion. Wenn Sie * moveImage * ein zweites Mal aufrufen, handelt es sich um eine andere Instanz der Funktion und * robotMoving * -Variable. Einfache Lösung ist es, * robotMoving * global zu machen (aber es gibt bessere Möglichkeiten). – RobG
@Spaceman: Wenn man es nicht auf false zurückstellt, erklärt das überhaupt nicht, warum der Roboter nie aufhört, sich zu bewegen. Es könnte die UNBEHANDELTE FRAGE erklären, warum der Roboter sich nicht mehr als einmal bewegen kann. – slebetman
@slebetman Ihre richtige Ich denke, mein Verstand ist vor kurzem zu Schlussfolgerungen gezogen. Entschuldigungen, die ich vermasselt habe. Robg ist völlig richtig. – Spaceman