为了完善我正在开发的应用程序,我正在为常见任务添加键盘快捷键。我可以起诉 Ext.KeyMap 这样做...

var map = new Ext.KeyMap("my-element", {
    key: 13, // or Ext.EventObject.ENTER
    fn: myHandler,
    scope: myObject
});

但我想检测“ss”或“qq”,即字母的特定双键笔画。我不知道该怎么做....

我的想法是检测单个击键,添加一个监听器来检测以下击键。为了处理它们之间的差距,设置一个延迟事件,在 x 时间后删除监听器。

任何改进/建议/警告?

最佳答案

我不确定为什么你需要一个额外的听众。为什么不将之前的击键存储在一个变量中(带有击键发生时的时间戳)。然后,您可以将最新的击键与之前的击键进行比较。如果它们相同,并且存储的时间戳不是过去太远,那么这就是您所追求的双键。如果键码不相同,或者存储的时间戳太旧,只需用新值更新存储的键码和时间戳。

关于javascript - ExtJS 使用 Ext.KeyMap 监听全局击键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5711695/

10-11 13:42