Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 因中断而失去焦点_Javascript_Jquery Ui - Fatal编程技术网

Javascript 因中断而失去焦点

Javascript 因中断而失去焦点,javascript,jquery-ui,Javascript,Jquery Ui,我有一些代码捕获keydown并查找Alt-D: $(document).keydown(function(e) { if((e.keyCode == 68) && e.altKey){ // Alt-D e.preventDefault(); - code to duplicate an element - } }); 这在第一次使用时效果很好,但是在使用了我的“复制元素的代码”之后,下一个Alt-D没有被捕获。

我有一些代码捕获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()应用于由重复代码创建的元素,但是没有看到我的中断。我必须在窗口中单击才能将它们取回。(这里包含的重复代码非常混乱。)

谢谢你的建议

.preventdefault() 返回false

我相信这两个都是跨浏览器兼容性所必需的

您正在创建元素。在元素实际创建之前设置焦点

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

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


目前,仅阻止猜测D键。而不是“alt键”((先按住D键,然后按alt。而alt先按下,然后按D键))

alt D会聚焦地址栏,默认操作是否仍在发生?否。如果我键入,字符不会进入地址栏。我看不到它们出现在任何地方。中断总是让我失去焦点。是的,Alt键本身会打开Firefox顶部的文件/视图/编辑菜单。窃取焦点的是Firebug调试器中断。清除这些选项可以将焦点保留在我的窗口中,我不必再次单击此处来查看新事件。谢谢你的意见。这有帮助。