我试图找到一种方法来触发一个事件,就像按下一个按键而不是按下按键一样。压了。所以我做了这样的事情:
$(document).keypress(function(e) {
if(e.which == 102) {
bool = true;
}
});
然后在handleEvents setTimeout :
中if (bool){
//do thing just one time
}
答案 0 :(得分:1)
使用keydown
代替keypress
。
按时间顺序排列如下:
$(document).keypress(()=> console.log('I am keypress'))
$(document).keydown(()=> console.log('I am keydown'))
$(document).keyup(()=> console.log('I am keyup'))

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1>Press any key</h1>
&#13;
答案 1 :(得分:0)
如果您正在寻找单例类型事件(事件处理程序只运行一次),您可以使用jQuery函数.one()
。这将在事件处理程序运行一次后自动取消绑定。例如:
$(document).one('keyup', function(event){
if (event.keycode === 102){
// code...
}
});
*请注意,在按键类型事件上使用它似乎不可取,因为无论是否按下了正确的键,处理程序都将在第一次运行时解除绑定。
听起来您希望事件处理程序仅在用户完成按键操作后才能运行。与其他评论一样,我建议您使用'keydown'
或'keyup'
事件。