Keydown不为我的eventlistener工作
我很困惑,为什么当我按下一个键时,我的函数没有记录keydown事件?Keydown不为我的eventlistener工作
window.addEventListener('keydown', function(e) {
console.log(e);
});
<h1> Start typing </h1>
我认为,正确的做法必须是使用文档对象,而不是窗口对象。
像下图的代码应工作:
document.addEventListener('keydown', function(e) {
console.log("event", e);
});
https://stackoverflow.com/a/2671217/211627 – JDB
@JDB我只是在寻找一个链接来解释为什么要使用文档而不是窗口。 –
这也许是有用的:https://stackoverflow.com/questions/33110338/window-document-addeventlistener-vs-window-addeventlistener/33110391#33110391 –
您的片段似乎是好的。所以它可能与周围的环境有关,你在哪里运行它。
(也就是说,如果使用document
其他答案尚未帮你。)
请调查它失败的情况。一个可能的原因可能是keyEvent
被任何沿着泡泡方式的EventListener取消。
您正在从最顶级的窗口级别(甚至高于文档级别)获取。
如果沿事件方式停止冒泡,则不会看到冒泡。
尝试例如
document.addEventListener("keydown", function(e) {
e.stopPropagation();
});
这也将阻止您在您的一部开拓创新的事件监听器看到该keydown。
它工作正常。请再检查一次。还要检查控制台中的任何错误。 – Rajesh