如何为停止/启动设置间隔功能仅设置一个键

how to set only one key for stop/start setInterval function

本文关键字:设置 一个 功能 启动      更新时间:2023-09-26

>我有停止和启动 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 键来启动和停止设置间隔?例如,我按 Z 键,它开始,然后我再次按 Z 键,它停止了!有人可以帮助我吗?

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

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

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

var boolStart = false;

    function keyDown() {
        var e = window.event;
        switch (e.keyCode) {
            case 83:
                if(!boolStart){
                    start();    
                }else{
                    stop();
                }
                break; 
        }
    }
    function start() {
        stop();
        boolStart = true;
        ..
    }
    function stop() {
        boolStart = false;
       ....        
    }

编辑 1:

你也可以用这种方式做。

var boolStart = false;
        function keyDown() {
            var e = window.event;
            switch (e.keyCode) {
                case 83:
                //;
                    boolStart = !boolStart;
                    if (!boolStart) {
                        start();
                    } else {
                        stop();
                    }
                    break;
            }
        }