【发布时间】:2012-10-25 16:11:12
【问题描述】:
所以,我有一个 Keydown 组合可以在我的表单部分中的 div 之间移动,但是在第一次使用该组合后,我只能按 ALT 键(键码 18)并且它同时运行两个 if 语句在函数中,因此两次调用我的另一个函数。
它应该在输入 if 之前检查第二个 keydown 事件,或者至少我是这样认为的。
是否有一些我需要执行的 keydown 清除命令,或者重置对 keydown 事件的侦听的方法?
var keys = [];
document.onkeydown = function(evt){
var key = evt.keyCode;
keys[key] = true;
if(keys[18] && keys[78]){
NewFocus('#Notes');
console.log("Notes");
}
if(keys[18] && keys[67]){
NewFocus('#Callers');
console.log("Callers");
}
return false;
}
function NewFocus(newNav)
{
$('.navActive').hide().removeClass('navActive');
console.log("made it to New Focus event.");
var id = $(newNav);
console.log("This is the id " + $(id));
$(id).show().addClass('navActive');
return false;;
}
顺便说一句,我在 Safari 和 Chrome 中运行它,你可以看到只看控制台会发生什么。
我一定错过了什么,但不知道是什么。
【问题讨论】:
标签: javascript html combinations keydown activation