我有一些代码可以捕获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()应用于由重复代码创建的元素,但这不会让我的中断被看到。我必须在窗口中点击才能让他们回来。 (重复的代码是包含在这里的混乱的方式。)
感谢您的任何建议。
答案 0 :(得分:1)
.preventdefault() 返回false;
两者都是必需的我相信跨浏览器兼容性。
你在创建元素吗?并尝试在实际创建元素之前设置焦点?
alt键本身。将焦点从文档中移出,并转移到工具栏。 尝试为alt和D键创建一个数组或全局变量,用于keydown。
所以发生了两次实际的“keydown”事件。每个事件都可以使用event.preventdefault();返回false;所以alt正在被阻止。和D键正在被阻止。
此刻猜测只有D键被阻止了。而不是“alt键”((按住D键然后按下ALT。对比ALT先按下然后按D键))