在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);
}
});
答案 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;按钮,找出到目前为止记录的内容。 我希望它有助于从中构建您的解决方案。