复选框处于活动状态时重复功能

时间:2019-07-10 20:16:30

标签: javascript html

我目前正在一个可以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

1 个答案:

答案 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和其他代码来确保其重复发生。如果未选中该按钮,则该函数应再次调用并停止。