开满天机
这个问题实际上问的是如何在长按一个按键的时候只触发一次keydown事件。处理方法:添加一个状态位变量,判断是否当前是否已经处于按下的状态。也就是在你的代码中做如下修改:var keyDownFlag = 0;//定义一个全局变量,该变量表示是否已经按下function keydownHandler(e){ if(e.keyCode==32&&keyDownFlag==0){//判断条件增加当前是否已经按下(是否处于长按) ballY-=dy keyDownFlag =1 //按下的时候修改状态 }}//空格键松开时ball掉下function keyupHandler(e){ if(e.keyCode==32){ ballY+=dy; keyDownFlag =0//松开的时候修改状态 }}