javascript - 如何只设置一键停止/启动setInterval函数

标签 javascript jquery

我有使用 key 停止和启动 setInterval 的功能。 它以 S 键开始,以 Z 键结束。

var refreshIntervalId;
window.addEventListener("onkeydown", keyDown,true);
window.addEventListener("keydown", keyDown);

    function keyDown() {
        var e = window.event;
        switch (e.keyCode) {
            case 83:
                start();
                break;
            case 90:
                stop();
                break;
        }
    }

    function start() {
        stop();
        refreshIntervalId = setInterval(function() {
            // code...
        },10);
    }

    function stop() {
        if (refreshIntervalId != null) {
            clearInterval(refreshIntervalId);
            refreshIntervalId = null;
        }
    }

那么我怎样才能只设置 Z 键来启动和停止 SetInterval 呢? 例如,我按 Z 键它开始,然后我再次按 Z 键它停止! 谁能帮帮我?

最佳答案

像下面这样修改你的代码,

function keyDown() {
 var e = window.event;
 switch (e.keyCode) {
   case 90:
   if(refreshIntervalId) { 
      stop(); 
   } 
   else { 
      start(); 
   }
   break;
 }
}

检查 refreshIntervalId 是否为真值。如果是,则停止间隔,否则启动它。

关于javascript - 如何只设置一键停止/启动setInterval函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35960187/

相关文章:

javascript - 在窗口中重新调整 Google 图表的大小

javascript - 如果有条件,用 php 显示 javascript 结果

javascript - 允许仅检查表行中四分之一的分数

jquery - 如何使用asp.net mvc5实现ajax登录?

c# - 无法找到该资源。 MVC4

Javascript - 声明异步函数时使用变量的值(直接而不是通过引用)

javascript - 切换元素 jquery

javascript - 如何使用 sinon.fakeServer 响应请求体?

javascript - anchor 标签和图像映射

javascript - 如何将一个链接添加到多个元素?