相关疑难解决方法(0)

在javascript中捕获ctrl + z组合键

我试图用这段代码在javascript中捕获ctrl+ z组合键:

<html>
<head>
    <title>Untitled Document</title>
</head>
<body>

    <script type='text/javascript'>
        function KeyPress(e) {
            var evtobj = window.event? event : e


            //test1 if (evtobj.ctrlKey) alert("Ctrl");
            //test2 if (evtobj.keyCode == 122) alert("z");
            //test 1 & 2
            if (evtobj.keyCode == 122 && evtobj.ctrlKey) alert("Ctrl+z");
        }

        document.onkeypress = KeyPress;
    </script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

如果我按住ctrl键并按任何其他键,注释行"test1"将生成警报.

如果我按下z键,注释行"test2"会生成警报.

在"测试1和2"之后按照线路将它们放在一起,按住ctrl键然后按下z键不会按预期生成警报.

代码有什么问题?

javascript combinations ctrl

65
推荐指数
4
解决办法
7万
查看次数

如何在JavaScript中避免自动重复的keydown事件?

如果用户按下该键,则会触发多个keydown事件.出于可用性原因,我需要使用keydown,而不是keyup,但我想避免这种情况.我的相关代码如下:

$(document).keydown(function(e) { 
        var key = 0;


        if (e == null) { key = event.keyCode;}  
        else {  key = e.which;} 


        switch(key) {
            case config.keys.left:                
              goLeft();
              break;
            case config.keys.up:                        
              goUp();
              break;
            case config.keys.right:                     
              goRight();
              break;
            case config.keys.down:                
              goDown();
              break;
            case config.keys.action:              
              select();
              break;
        }     
      });
Run Code Online (Sandbox Code Playgroud)

因此,当用户按下向下键时,goDown()会被多次触发.即使用户按住键,我也希望它只触发一次.

javascript keyboard jquery

26
推荐指数
3
解决办法
2万
查看次数

标签 统计

javascript ×2

combinations ×1

ctrl ×1

jquery ×1

keyboard ×1