Jquery 在按键事件后关注文本框

Jquery 在按键事件后关注文本框,jquery,Jquery,我努力实现的目标是: 在Alt键上,它应该显示一个span,告诉用户如果现在按c键,textbox将打开focus 或者在Alt+c上,它应该聚焦。(本工程) 问题: 当按下Alt键时,span显示,当按下c键后,什么也不会发生。但是如果我在点击页面的某个地方后按c键,它就会设置焦点。为什么呢?我该如何解决这个问题 下面是我所拥有的 var lastKey; $(文档).on(“向下键”,函数(e){ e、 停止传播(); 如果(如altKey){ $(“.shortcut”).fadeI

我努力实现的目标是:

  • 在Alt键上,它应该显示一个
    span
    ,告诉用户如果现在按c键,
    textbox
    将打开
    focus
  • 或者在Alt+c上,它应该
    聚焦
    。(本工程)
问题: 当按下Alt键时,
span
显示,当按下c键后,什么也不会发生。但是如果我在点击页面的某个地方后按c键,它就会设置焦点。为什么呢?我该如何解决这个问题

下面是我所拥有的

var lastKey;
$(文档).on(“向下键”,函数(e){
e、 停止传播();
如果(如altKey){
$(“.shortcut”).fadeIn(“慢”);
如果(e.keyCode==67){//c
日志(“过滤器应打开”);
$(“.shortcut”).fadeOut(“慢”);
$(“#项”).focus()
e、 预防默认值();
返回false;
}
}
如果(lastKey&&e.keyCode==67){//c
$(“.shortcut”).fadeOut(“慢”);
$(“#项”).focus()
e、 预防默认值();
lastKey=false;
返回false;
}
lastKey=true;
});
。快捷方式{
显示:无;
}
.inputgroup快捷方式{
位置:绝对位置;
//最高:25%;
填充物:3px 5px;
背景:#428bca;
边界半径:4px;
颜色:白色;
线高:1.0;
字体大小:9px;
字体大小:粗体;
左:0px;
z指数:100;
}

C

您需要添加
e.preventDefault()
以防止alt键在浏览器中执行其默认操作,即在浏览器中显示菜单栏

var lastKey;
$(文档).on(“向下键”,函数(e){
e、 停止传播();
如果(如altKey){
$(“.shortcut”).fadeIn(“慢”);
e、 预防默认值();
如果(e.keyCode==67){//c
日志(“过滤器应打开”);
$(“.shortcut”).fadeOut(“慢”);
$(“#项”).focus()
e、 预防默认值();
返回false;
}
}
如果(lastKey&&e.keyCode==67){//c
$(“.shortcut”).fadeOut(“慢”);
$(“#项”).focus()
e、 预防默认值();
lastKey=false;
返回false;
}
lastKey=true;
});
var lastKey;
$(文档).on(“向下键”,函数(e){
e、 停止传播();
如果(如altKey){
$(“.shortcut”).fadeIn(“慢”);
e、 预防默认值();
如果(e.keyCode==67){//c
日志(“过滤器应打开”);
$(“.shortcut”).fadeOut(“慢”);
$(“#项”).focus()
e、 预防默认值();
返回false;
}
}
如果(lastKey&&e.keyCode==67){//c
$(“.shortcut”).fadeOut(“慢”);
$(“#项”).focus()
e、 预防默认值();
lastKey=false;
返回false;
}
lastKey=true;
});
。快捷方式{
显示:无;
}
.inputgroup快捷方式{
位置:绝对位置;
//最高:25%;
填充物:3px 5px;
背景:#428bca;
边界半径:4px;
颜色:白色;
线高:1.0;
字体大小:9px;
字体大小:粗体;
左:0px;
z指数:100;
}

C

您的代码在Chrome中运行良好-虽然逻辑可以简化。但对我来说不会。版本58.0.3029.110(64位)我在同一个版本上too@RoryMcCrossan我得到了PO in(@JinsPeter)说的行为,这对我很有效。也许我只是不知道问题是什么,或者不知道重现问题的步骤