5

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

有任何想法吗?

4

3 回答 3

8

修饰键触发keydown(但不是keypress)。然后您可以简单地检查事件对象上定义的标志。shiftKey, altKey, ctrlKey,metaKey

完整列表在这里:http ://api.jquery.com/category/events/event-object/

于 2013-03-23T04:22:20.210 回答
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();
于 2013-03-23T04:24:45.143 回答
0

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

示例代码:

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

关于 e.which 的 JQuery 文档:http: //api.jquery.com/event.which/

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

于 2013-03-23T04:21:53.230 回答