这个想法是将普通键与修饰键链接在一起(如果碰巧会被按下)。 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-如果有某种内置的方法可以将其恢复为原始值而无需手动设置

最佳答案

如果您想知道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" />





要回答您的问题:


  A-您可以等待第一个函数完成,然后执行将其恢复为正常状态的代码
  
  B-如果有某种内置的方法可以将其恢复为原始值而无需手动设置


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

10-04 22:34