0

我有一些代码可以捕获 keydown 并查找 Alt-D:

$(document).keydown(function(e) {
     if((e.keyCode == 68) && e.altKey){     // Alt-D
    e.preventDefault();

         - code to duplicate an element  - 

      }
});

这第一次工作得很好,但是在通过我的“复制元素的代码”之后,下一个 Alt-D 没有被捕获。事实上,没有中断被捕获,直到我在正文中单击返回。似乎“复制元素的代码”做了一些将中断引导到其他窗口的事情。

有人可以建议我必须在我的重复代码中做什么才能发生这种情况吗?我尝试将 focus() 应用于由重复代码创建的元素,但这并没有让我的中断被看到。我必须在窗口中单击才能将它们取回。(重复的代码在这里包含起来很麻烦。)

感谢您的任何建议。

4

1 回答 1

1

.preventdefault() 返回 false;

两者都是必需的,我相信跨浏览器兼容性。

你在创建元素吗?并尝试在实际创建元素之前设置焦点?

alt 键本身。将焦点从文档中移到工具栏上。尝试为 alt 和 D 键为 keydown 创建一个数组或全局变量。

所以发生了2个实际的“keydown”事件。每个事件都可以使用 event.preventdefault(); 返回假;所以alt被阻止了。和 D 键被阻止。

目前只猜测 D 键正在被阻止。而不是“alt键”((先按住D键然后按ALT。VS先按下ALT然后再按D键))

于 2013-11-11T19:17:08.687 回答