为键盘"1" "2"绑定onkeydown事件后,当同时触发这两个按键时如何让按键"2失效"
为键盘"1" "2"绑定onkeydown事件后,当同时触发这两个按键时如何让按键"2失效"
一楼正解,根本不存在同时按了两个键的说法,必然是你先触发了1,又触发了2,你能实现的只是不在1被按完之后立马按2,这个酒很好解决了,设定一个记录上一次按1的时间,在1的处理事件中添加每次更新这个记录时间变量的逻辑,然后在b的处理事件中先计算这次按2距离上次按1的时间差,如果足够小让你觉得是“同时按下”那就直接return,否则你继续执行原本的业务逻辑。
但是这样可能会造成问题,因为是异步事件,你这个handler执行的时候其实并不是你按的时候,但是如果你要杜绝的是快速先按1,再按2我记得两个处理函数中间不太可能插入太多的调用,所以应该还是可行的,只是这个时间得你自己选择好才可以
你可能要分别再绑定keyup事件,然后再弄一个变量。当任意一个keydown的时候把这个变量改成false,任意一个keyup的时候改成true。然后在keydown事件里加判断,只有变量是true的才会执行之后的内容。
16 回答2.9k 阅读✓ 已解决
6 回答4.3k 阅读✓ 已解决
7 回答1.9k 阅读
14 回答2.1k 阅读
3 回答1k 阅读✓ 已解决
2 回答6.5k 阅读✓ 已解决
4 回答869 阅读✓ 已解决
在事件回调函数外命名一个作为状态的变量啊,然后触发按键的事件的时候判断,阻止掉不想要的按键事件