我的要求很简单:用户按下 Ctrl 键,我的页面上会出现一些通知,当释放通知时,通知就会消失,所以我需要跟踪 Ctrl 等修饰键。不幸的是,我谷歌并没有找到任何线索,一些著名的键盘库,如Mousetrap和keymaster
似乎也没有涵盖这个主题。
有任何想法吗?
我的要求很简单:用户按下 Ctrl 键,我的页面上会出现一些通知,当释放通知时,通知就会消失,所以我需要跟踪 Ctrl 等修饰键。不幸的是,我谷歌并没有找到任何线索,一些著名的键盘库,如Mousetrap和keymaster
似乎也没有涵盖这个主题。
有任何想法吗?
修饰键触发keydown
(但不是keypress
)。然后您可以简单地检查事件对象上定义的标志。shiftKey
, altKey
, ctrlKey
,metaKey
等
完整列表在这里:http ://api.jquery.com/category/events/event-object/
尝试这个-
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();
使用 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/