【发布时间】:2014-07-29 05:08:33
【问题描述】:
这就是我想要实现的(我已经简化了场景):
- 用户按下Ctrl + Tab,出现一个隐藏的
div#my_div - 用户在按住 Ctrl 的同时释放 Tab,因此
div#my_div仍然可见 - 用户在按住 Ctrl 的同时按下 Tab,所以
div#my_div变为随机颜色 - 用户释放Ctrl,所以
div#my_div被隐藏
这类似于 Windows 上的 Alt + Tab 键盘事件,其中这些键的组合会触发切换窗口的快捷方式。并且该快捷方式在 Alt 被按下时保持可见并在 Alt 被释放的那一刻消失,并且在 Tab 之间可以按下几次。
我可以检测到 Ctrl + Tab,但是一旦我释放 Tab,Ctrl 按键事件就会触发,即使它被按下:
$(window).keydown(function(e)
{
if(e.ctrlKey && e.which === 9)
{
console.log("ctrl+tab");
e.preventDefault();
}
});
$(window).keyup(function(e)
{
if(e.which === 9)
{
console.log("tab");
e.preventDefault();
}
});
$(window).keyup(function(e)
{
if(e.ctrlKey)
{
console.log("end of feature");
e.preventDefault();
}
});
我怎样才能完成这项任务?
【问题讨论】:
-
请注意,大多数浏览器上的
Ctrl+Tab是您在浏览器选项卡之间移动的方式...可能有点问题,用户不喜欢他们的导航习惯受到干扰...跨度>
标签: jquery keyboard-events key-bindings