我不知道这是如何工作的。我正在尝试学习关键事件。我需要按下按键才能工作,但是按下按键就无法工作。任何帮助表示赞赏。

      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/

10-12 06:41