JavaScript如何实现对按键的循环检测?

问题描述

我想对按键进行数次循环检测,比如使用for循环检测按键三次,每次监测到按键触发会执行指定的函数,比如我按下空格(keyCode=32),然后后台打印出1 ,按下三次打印出三个1.
但是我目前遇到的问题是,按下一次就会弹出三个1,代码如下:

<html>
  <script type="text/javascript">
    for(let i=0;i<3;i++){        document.addEventListener("keydown",function(){            var e = event || window.event || arguments.callee.caller.arguments[0];            if(e.keyCode!=null&&e.keyCode==32){                console.log('ok');
            }
        })
    }  </script></html>

求大佬答疑呀~


慕后森
浏览 584回答 3
3回答

长风秋雁

把 for 语句去掉就好了;

炎炎设计

arguments.callee.caller.arguments[0]在火狐上好像会报错,改为下面这样把关于计数(function(){ &nbsp;var&nbsp;idx&nbsp;=&nbsp;0;&nbsp; &nbsp;document.addEventListener("keydown",function(e){ &nbsp;&nbsp;var&nbsp;e&nbsp;=&nbsp;e&nbsp;||&nbsp;window.event&nbsp;||event; &nbsp;&nbsp;if(e.keyCode&&e.keyCode==32){ &nbsp;&nbsp;&nbsp;&nbsp;idx++; &nbsp;&nbsp;&nbsp;&nbsp;console.log(idx); &nbsp;&nbsp;} &nbsp;});})();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript