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