我不知道这是如何工作的。我正在尝试学习关键事件。我需要按下按键才能工作,但是按下按键就无法工作。任何帮助表示赞赏。
window.onload = function(){
window.addEventListener('keyup' , loopit1 ); // this doesn't work.
/*window.addEventListener('keydown' , loopit2 );*/ // this works. That's why it's commented out.
function loopit1(e){
if(e.ctrlKey){
alert("Key Up!");
}
//This doesn't work.
}
/*function loopit2(e){
if(e.ctrlKey){
alert("Key Down!");
}
}*// This Works. That's why it's commented out.
}
最佳答案
如果注销事件对象,则会在e.ctrlKey = true
事件上看到keydown
,但在e.ctrlKey = false
事件上看到keyup
。
你为什么问?
我无法真正向您推荐任何来源或任何事实,但是我的论文是这样的:e.ctrlKey
属性是您检查单击按钮时是否按下ctrl键的属性。正如您将通过检出发现的那样,事件对象具有许多这些属性供您检查。这样,更容易检查用户是否单击了ctrl + s或alt + f7或其他。
e.ctrlKey始终为false的原因可能是因为不需要。也许很奇怪,但是考虑到我上面的论点,将其设置在第一位实际上没有任何意义。
解决您的问题的方法是改为检查keyCode属性-ctrl的键为17。
function loopit1(e){
if(e.keyCode === 17){
alert("Key Up!");
}
}
希望这可以帮助!
关于javascript - 按键不起作用Javascript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19527293/