我正在使用jQuery 1.12版本。当一个DIV获得焦点时,我希望它能够捕获按键事件(特别是向下和向上箭头键)。因此,我遵循了这个方法:
$('div.select-styled').bind('keydown', function(event) {
console.log(event.keyCode);
elt = $(this).search(".select-options li:hover");
console.log(elt);
switch(event.keyCode){
// case up
case 38:
console.log(“up pressed.”)
break;
case 40:
console.log(“down pressed”)
break;
}
});
但是这并没有捕捉到按键。请看我的Fiddle链接 - http://jsfiddle.net/cwzjL2uw/10/。点击“Select State”菜单,或者点击“Last Name”字段并点击“Tab”以将焦点转移到下一个DIV。但是,当那个菜单获得焦点时,单击任何键都不会激活上面的处理程序,至少在Mac Chrome或Firefox中对我没用。
非常感谢您的帮助,-
.select
元素已经具有tabindex
属性(如下面我的答案所述)-但不仅因为.select
是父级。删除tabindex
,你会看到问题再次出现。 - Jon Uleis