gpt4 book ai didi

javascript - 如何在不捕获 keydown 事件的情况下查看修改键是否被按住?

转载 作者:行者123 更新时间:2023-11-29 10:31:27 25 4
gpt4 key购买 nike

我知道如何捕捉 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com