我尝试使用 keydown 和 keypress,但如果用户按住某个键,两者都会不断触发。有没有办法只听用户按下键(从未按下变为按下),以便例如:按住键触发代码一次并按下它,释放它并再次按下它 2 次?
这是我用来检查哪些键按下的:
$(document).keydown(function (e){
console.log(e.which);
});
最佳答案
您可以在第一次调用 keydown
时解除绑定(bind) keydown
处理程序,然后在 keyup
上重新绑定(bind)它。
// keydown is bound at load
$(document).keydown(function (e){
// Call function
doStuff();
});
// keyup rebinds the keydown event.
$(document).keyup(function(e) {
$(document).keydown(function(e) {
doStuff();
});
});
// The function called on keydown does something
// and then unbinds the keydown event
function doStuff() {
console.log("Doing stuff");
// And unbind it...
$(document).unbind('keydown');
}
关于javascript - 只听按键按下的那一刻(就在按键从上变到下的时候)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13870742/