jQuery - 按下某个键时执行代码,并在发布时将其恢复正常

时间:2017-05-15 07:09:33

标签: javascript jquery function events triggers

这个想法是在正常按键碰巧被按下时使用修饰键来链接它们。 c Ctrl c

以下作品:

var inc = 10;

$(document).keydown(function(e) {
    switch(e.which) {
        case 16: // shift
            inc = 100;

            break;

        case 17: // ctrl
            inc = 1;

            break;
    }
});

$(document).keyup(function() {
    inc = 10;
});

当键关闭时,变量设置为相应的值,并在释放时恢复正常。但我想知道是否:

A - 您可以等待第一个函数完成,然后执行将其恢复正常的代码

B - 如果有某种内置方式可以将其恢复为原始值而无需手动设置

1 个答案:

答案 0 :(得分:1)

如果您想知道 CTRL SHIFT 键是否用作修饰符,请不要查找它的键码。而是使用事件的ctrlKeyshiftKey属性。试试这个:



var inc = 10;
$('input').val(inc);
  
$(document).keydown(function(e) {
  if (e.shiftKey) {
    inc = 100;
  } else if (e.ctrlKey) {
    inc = 1;
  }
  
  $('input').val(inc);
});

$(document).keyup(function() {
  inc = 10;
  
  $('input').val(inc);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />
&#13;
&#13;
&#13;

回答你的问题:

  

A - 您可以等待第一个函数完成,然后执行将其恢复正常的代码

     

B - 如果有某种内置方式可以将其恢复为原始值而无需手动设置

两者的答案都是否定的。您使用的模式是最好的方法。