我想要移动和停止程序。 这个程序只有一个按钮。按钮是程序的全部。 是的,这是超级简单的程序。 该计划的问题是球不会停止。
{{1}}
我想要的是当我点击拍摄按钮时,球应移动, 再次点击,停止。 执行我的代码,单击一次,球正确移动。再次点击,它不会停止。这是我的问题。 如何阻止球?
答案 0 :(得分:1)
问题在于,每次按下按钮都会重置// Save outside of the function so it will keep it's value
var timeoutID;
document.getElementById('clickMe').addEventListener('click', function() {
// Notice that I'm not re-assigning timeoutID
// every time I click the button
if (timeoutID) {
console.log('Stopped');
clearInterval(timeoutID);
// Clear out the ID value so we're ready to start again
timeoutID = null;
} else {
timeoutID = setInterval(function() {
console.log('Rolling...');
}, 500);
}
});
。将该值保存在函数之外,它就可以正常工作。
<button id="clickMe">Start/Stop</button>
&#13;
{{1}}&#13;
答案 1 :(得分:0)
var moving = false;
var interval;
// handle the click
function handleClick() {
// if moving set moving to false, otherwise set it to true
moving = moving ? stop() : start();
}
// start the interval that calls move function and set moving to true
function start() {
moving = true;
interval = setInterval(function() {
move();
}, 500);
}
// clear the interval and set moving to false
function stop() {
moving = false;
clearInterval(interval);
}