在处理键盘事件时,我意识到并非所有元素都可以获取事件目标。例如,当向没有键盘焦点的元素(“p”元素)添加处理程序时,如下所示,那么当我按下键盘时当然不会发生任何事情。
但是,如果我通过整个文档更改“p”元素以添加该键盘事件(假设通过将我的代码更改为document.keydown = myFunction;),那么代码运行良好。当我在某处读到时,这是因为键盘事件发生在文档中的某处,然后冒泡到文档元素。那么你能告诉我这个事件在文档中发生在哪里吗?这是代码:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p id = 'myId'>Some Text</p>
<script>
function myFunction(e)
{
var x=e.keyCode;
var keychar=String.fromCharCode(x);
alert("Key " + keychar + " was pressed down");
}
var myEl = document.getElementById('myId');
myEl.onkeydown = myFunction;
</script>
</body>
</html>
谢谢!