Javascript / Toggle / Switch / clearInterval() - 当开关关闭时无法 clearInterval()
Javascript / Toggle / Switch / clearInterval() - not able to clearInterval() when the toggle is switched off
哇,这是我的第一个 post!编程和编码的新手,这是我从事的第一个项目。我希望能够使用 setInterval() 将切换切换到 运行 代码或停止它。但是现在我无法在选择切换开关时将其关闭。尝试了多种方法,比如 break;但到目前为止还没有成功。如果你们中的任何人能指出我正确的方向,那就太好了。
亲切的问候,
劳伦斯
HTML
中的代码
<card>
<p>Theft Script ON/OFF</p>
<label class="switch">
<input id="executeTheftScript" type="checkbox" > Toggle me
</label>
</card>
Javascript
中的代码
function theftToggle(){
var isChecked = document.getElementById("executeTheftScript").checked;
if (isChecked) {
var i = setInterval(function(){
if (person1.credits === 0) {
clearInterval(i);
updateStats();
console.log("You don't have any credits.");
} else {
theft();
person1.credits--;
updateStats();
};
}, 500);
} else {
console.log("Your script is stopped.");
}
}
document.getElementById("executeTheftScript").addEventListener('click', theftToggle);
运行的代码;
您需要 addEventListener
输入,最好在函数外设置 setInterval 变量或将其设为全局变量,这样它就不会创建重复的 setInterval。
var interval;
var person1 = {
credits: 10
}
// listen the input for checked change
document.getElementById("executeTheftScript").addEventListener('change', theftToggle);
function theftToggle() {
var isChecked = document.getElementById("executeTheftScript").checked;
if (isChecked) {
interval = setInterval(function() {
if (person1.credits === 0) {
clearInterval(interval);
updateStats();
console.log("You don't have any credits.");
} else {
theft();
person1.credits--;
updateStats();
}
}, 500);
} else {
clearInterval(interval)
console.log("Your script is stopped.");
}
}
function theft() {}
function updateStats() {
console.log("credits: ", person1.credits);
}
<card>
<p>Theft Script ON/OFF</p>
<label class="switch">
<input id="executeTheftScript" type="checkbox"> Toggle me
</label>
</card>
哇,这是我的第一个 post!编程和编码的新手,这是我从事的第一个项目。我希望能够使用 setInterval() 将切换切换到 运行 代码或停止它。但是现在我无法在选择切换开关时将其关闭。尝试了多种方法,比如 break;但到目前为止还没有成功。如果你们中的任何人能指出我正确的方向,那就太好了。
亲切的问候, 劳伦斯
HTML
中的代码<card>
<p>Theft Script ON/OFF</p>
<label class="switch">
<input id="executeTheftScript" type="checkbox" > Toggle me
</label>
</card>
Javascript
中的代码function theftToggle(){
var isChecked = document.getElementById("executeTheftScript").checked;
if (isChecked) {
var i = setInterval(function(){
if (person1.credits === 0) {
clearInterval(i);
updateStats();
console.log("You don't have any credits.");
} else {
theft();
person1.credits--;
updateStats();
};
}, 500);
} else {
console.log("Your script is stopped.");
}
}
document.getElementById("executeTheftScript").addEventListener('click', theftToggle);
运行的代码;
您需要 addEventListener
输入,最好在函数外设置 setInterval 变量或将其设为全局变量,这样它就不会创建重复的 setInterval。
var interval;
var person1 = {
credits: 10
}
// listen the input for checked change
document.getElementById("executeTheftScript").addEventListener('change', theftToggle);
function theftToggle() {
var isChecked = document.getElementById("executeTheftScript").checked;
if (isChecked) {
interval = setInterval(function() {
if (person1.credits === 0) {
clearInterval(interval);
updateStats();
console.log("You don't have any credits.");
} else {
theft();
person1.credits--;
updateStats();
}
}, 500);
} else {
clearInterval(interval)
console.log("Your script is stopped.");
}
}
function theft() {}
function updateStats() {
console.log("credits: ", person1.credits);
}
<card>
<p>Theft Script ON/OFF</p>
<label class="switch">
<input id="executeTheftScript" type="checkbox"> Toggle me
</label>
</card>