我知道如何捕捉 keyup 和 keydown 事件。
我希望我的程序查看哪些修改键(例如:元键、控制键、Alt 键等)当前被按住,即使程序没有观察到这些键的按键事件也是如此。
我知道点击事件和其他事件可以告诉我按下了哪些修改键,但我的程序不能等待事件发生。
我需要我的程序定期检查修改键(例如,每 100 毫秒)。我该怎么做呢?如果有帮助,我的程序会使用 jQuery。
最佳答案
您可以将这些值存储在变量中,并在需要时随时检查它们。当然需要一个事件监听器来更新该变量:
// assume no hot key is pressed
var object = {
ctrlKey: false,
altKey: false,
shiftKey: false
};
// update whenever a keydown or keyup event is fired
document.addEventListener("keydown", function(e) {
for(var key in object) {
if(object.hasOwnProperty(key))
object[key] = e[key]; // update the object from the event e
}
});
document.addEventListener("keyup", function(e) {
for(var key in object) {
if(object.hasOwnProperty(key))
object[key] = e[key];
}
});
// testing example:
function check() {
console.log("Checking:");
console.log("Alt key:", object.altKey);
console.log("Ctrl key:", object.ctrlKey);
console.log("Shift key:", object.shiftKey);
}
setInterval(check, 1000); // calling check every second without waiting for an event to occur
关于javascript - 如何在不捕获 keydown 事件的情况下查看修改键是否被按住?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45124086/