按%后如何检测所有按键

时间:2017-01-06 01:53:01

标签: javascript jquery

在jquery中按'%'后是否可以检测到按键?我想要的是,在用户按下'%'之后,脚本将在此之后开始检测所有按键,在列表中搜索匹配项,并在用户单击该列表中的列表项时停止。

 $(iframeDocument).find('body').on('keypress', function(event) {
    if(event.which === 37) {
      $('#tokens-menu dd').trigger("click");
    } else {
      // search through a list
      $(iframeDocument).find('body').handleBackspace(event); 
    }
  });

2 个答案:

答案 0 :(得分:0)

检测到%时设置变量,然后在此之后处理所有按键。当他们单击按钮时,清除变量。

var percent_pressed = false;
$(window).on('keypress', function() {
  var key = event.which;
  if (percent_pressed) {
    // use this keypress
    $("#output").append(String.fromCharCode(key));
  } else if (key == 37) {
    percent_pressed = true;
    $("#output").empty();
  }
});
$("#tokens-menu").click(function() {
  percent_pressed = false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h4>Type % to start appending to output</h4>
Output: <span id="output"></span>
<br>
<button id="tokens-menu">Click to restart</button>

答案 1 :(得分:0)

以下是基于您的描述的一个示例:

$(document).on('keyup', function (e) {
    var c = String.fromCharCode(e.which) // or e.keyCode;
    if (logging) {
        rec.push(c);
    }

    // start logging if '%' pressed
    if (e.shiftKey && e.which == 53) { 
        logging = true;
    }
});

看到它在这里运行:https://jsfiddle.net/ddan/kuotty5v/

按下&#39;%&#39;它会开始记录您输入的内容。您可以点击&#34;显示记录&#34;按钮,找出到目前为止记录的内容。 我希望它有助于从中构建您的解决方案。