Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.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 如何为html div启用键盘事件?_Javascript_Html - Fatal编程技术网

Javascript 如何为html div启用键盘事件?

Javascript 如何为html div启用键盘事件?,javascript,html,Javascript,Html,在我的代码中有一个div,如: <div style="text-decoration:underline" onmouseover="this.style.cursor='pointer';" id="<%=namespace%>_pmProfileName_<%=i%>_" onclick="perfChartConfig_<%=namespace%>.doShowProfilesForElement(this);"></div>

在我的代码中有一个div,如:

<div style="text-decoration:underline" onmouseover="this.style.cursor='pointer';" id="<%=namespace%>_pmProfileName_<%=i%>_"  onclick="perfChartConfig_<%=namespace%>.doShowProfilesForElement(this);"></div>

现在单击此链接将打开一个新的弹出窗口。但这件事只能通过鼠标点击来完成。我想通过按下回车键来完成


你知道怎么做吗

使用像jQuery这样的JavaScript框架,并使用其清晰的文档。

首先,您必须决定如何响应Enter键。击键转到网页上具有键盘焦点的事件。如果没有显示有焦点的项,则键可能会跳到文档对象上,以便它决定要执行的操作

那么,当你说你想在回车键上做点什么的时候,是不是有一个回车键被按下了,不管焦点在网页的什么地方?还是只有当焦点集中在特定的div上时

要使该div具有键盘焦点并因此获得键盘事件,必须使该div可编辑,以便它可以接受键盘焦点和键盘事件

一种方法是将属性contenteditable=“true”设置为:

初始文本
然后,一旦它能够接受键盘焦点和键盘事件,就可以安装事件处理程序来处理Enter键


如果您真的想在页面的任何位置响应enter键,那么您可以在文档级别安装一个键盘事件处理程序,它将抓取和弹出到文档级别的键。

也许您需要这样做?

您需要使
能够接收焦点,这在默认情况下是无法做到的。正如另一个答案中提到的,您的选项使其可编辑,或者通过给
一个
tabindex
属性使其不那么剧烈

<div tabindex="0">...</div>
。。。

对于要获取键盘事件的项目,它必须能够获取键盘焦点。这个问题不仅仅是在div上连接一个键盘事件处理程序;我没有读到问题中的“选择div并按enter键”。dom可以接收和处理键盘事件而无需特定的焦点。已经有一个答案为您指明了正确的方向,但是当
标记将自动执行此操作时,您为什么要使用
?我注意到您甚至将
样式设置为更像
。(注意:您不需要在mouseover上设置光标样式,只需在元素的其他样式末尾添加“cursor:pointer;”。)
<div tabindex="0">...</div>