如何使用javascript / jquery跟踪修饰键?

时间:2013-03-23 04:17:30

标签: javascript jquery keyboard-shortcuts

我的要求很简单:用户按下Ctrl键会在我的页面上显示一些通知,当发布时,通知就会消失,所以我需要跟踪修改键,例如Ctrl。不幸的是我谷歌并没有找到任何线索,一些着名的键盘库,如Mousetrapkeymaster似乎也没有涵盖这个主题。

有什么想法吗?

3 个答案:

答案 0 :(得分:8)

修饰键触发keydown(但不是keypress)。然后,您只需检查事件对象上定义的标志即可。 shiftKeyaltKeyctrlKeymetaKey等。

完整列表如下:http://api.jquery.com/category/events/event-object/

答案 1 :(得分:1)

试试这个 -

var ctrlKey = false;
window.onkeydown = function(e) {
    if(e.keyCode == 17) {
        ctrlKey = true;
    }
};
window.onkeyup = function(e) {
    if(e.keyCode == 17) {
        ctrlKey = false;
    }
};
function notify() {
    if(ctrlKey) {
        $('#notification').show();
    } else {
        $('#notification').hide();
    }
}
function main() {
    var _inter = setInterval(notify, 100);
}

main();

答案 2 :(得分:0)

使用jQuery,您可以使用keydown和keyup事件处理程序,您将看到Ctrl键向下和向上。如果你想跟踪它是向下还是向上,那么只需在它下降时设置一个全局标志,并在它上升时清除标志。

示例代码:

$(document).keydown(function(e) {
    if (e.which == 17) {
        $("#result").append("ctrl key pressed<br>");
    }
});

jQuery doc on e.which:http://api.jquery.com/event.which/

工作演示:http://jsfiddle.net/jfriend00/mezwF/