我目前正在一个可以ping API接收图像的网站上工作。现在,我想添加一个复选框,只要该复选框处于活动状态,该复选框在按下时每5秒钟执行一次apiping()
函数。如果未激活该复选框,则什么也不会发生。
编辑(因为我是个白痴):
我已经尝试了整个setInterval onClick东西。例如,如果Checkbox已激活var interval = setInterval(apiping(),5000);
,而Checkbox未激活clearInterval(interval);
。除clearInterval部分无效外,其他方法均有效。
编辑2: 这是函数apiping:
let url = 'https://nekos.life/api/neko';
function apiping(){
fetch(url)
.then(res => res.json())
.then((out) => {
console.log('Checkout this JSON! ', out.neko);
imglink = out.neko
document.getElementById("img").src = out.neko;
document.getElementById("imgbig").src = out.neko;
})
.catch(err => { throw err });
}
apiping();
解决方案
var interval;
function TryApiPing() {
x = document.getElementById("slideshow").checked;
if (x) {
//makemagichappen
interval = setInterval(apiping, 2000);
} else {
clearInterval(interval);
}
}
这有效。感谢大家的帮助:D
答案 0 :(得分:1)
<input type="checkbox" onclick="TryApiPing()" id="foo"/>
var interval;
TryApiPing() {
x = document.getElementById("foo").checked;
if (x)
{
//makemagichappen
interval = setInterval(apiping,5000);
}
else {clearInterval(interval);}
}
对不起,我不在电脑前,因此格式可能并不完美,但是此功能在单击时执行并检查复选框的“ checked”属性。在if决策中,您可以使用interval和其他代码来确保其重复发生。如果未选中该按钮,则该函数应再次调用并停止。