是否可以知道键盘上按下了哪两个键?
我该怎么办?
我需要比较这些键,如果它们是相同的 - 做一些功能。
例如,如果有人按Enter键 - 这是第一个功能,如果在Enter后他按下SPACE-这是第二个功能。如果在ENTER之后他按下Ctrl键 - 这是第三个功能
所以,我希望只有这样才能做到 - 用当前和以前的键值制作一个2 var,然后制作一个 IF ELSE IF 函数
:-)
这是一种方式,我如何获得当前键值
$('#text').keydown(function(event) {
$('#show').text(event.keyCode);
});
或者,更好的问题! (我现在看到了)
直接在这个编辑器中,按下双打空格后 - 它会在实时预览中跳转到另一行
这个怎么运作?我不确定,但我认为我需要的几乎是一样的
非常感谢你!
答案 0 :(得分:1)
我认为存储最后一个按键并检查事件处理程序中的新旧keyCode
是一种很好的方法。
$('#text').keydown((function() {
var lastKey = undefined;
return function(event) {
// here you have both the old and new keyCode
lastKey = event.keyCode;
};
})());
另外,两个空格的东西是Markdown解释。
答案 1 :(得分:0)
你可以从非常简单的jQuery插件开始:
(function($) {
$.fn.keyWatcher = function() {
return this.keydown(function(evt){
var $this = $(this);
var prevEvt = $this.data('prevEvt');
$this.trigger('multikeydown',[prevEvt,evt]);
$this.data('prevEvt',evt);
});
};
})(jQuery);
每当通常引发multikeydown
事件时,这将引发新事件(keydown
)。这将只提供当前按键的keydown事件,或者如果有前一个事件,它也将提供该事件。
用法可能类似于:
$(document).keyWatcher().bind('multikeydown',function(evt,prevKey,currKey){
alert('prevKey = ' + ((prevKey) ? String.fromCharCode(prevKey.keyCode) : '(none)'));
alert('currKey = ' + String.fromCharCode(currKey.keyCode));
});
实例(按jsfiddle右下方的按键):http://jsfiddle.net/9VMUy/1/
事件处理程序中prevKey
和currKey
参数中提供的事件包含原始keydown
个事件,因此您可以完全访问keyCode
,{{1 }和ctrlKey
属性等。
答案 2 :(得分:0)
这可能不是最好的解决方案,但看看你是否可以使用它或它的一部分
var clicks = 0
$("#text").one("keypress", function () {
clicks = 1;
var KeyCode1 = event.keyCode;
$('#result').text(KeyCode1);
$("#text").one("keypress", function () {
clicks = 2;
var KeyCode2 = event.keyCode;
$('#result').text(KeyCode1 + "\n" + KeyCode2);
});
});