обнаружение комбинированного нажатия клавиш в JavaScript - PullRequest
2 голосов
/ 08 марта 2011

Я создаю html-страницу, которая содержит вопрос (ситуация, похожая на головоломку).Ответ на вопрос «Windows 7».Но я хочу, чтобы пользователь справился с вопросом, только если он нажмет windows key followed by 7.Я хочу создать функцию JavaScript для этого.Я могу зафиксировать нажатие отдельной клавиши, получив значение ascii нажатия клавиши.Но когда я пытаюсь сделать это вместе, это не работает.Как решить эту проблему .. любые идеи ..

Ответы [ 2 ]

5 голосов
/ 08 марта 2011

http://jsfiddle.net/loktar/MsNPW/5/

var keys = [];

document.onkeydown = function(evt){    
   var key = evt.keyCode;
   keys[key] = true;
    if(keys[91] && keys[55]){
       console.log("win7");
    } 
}

document.onkeyup = function(evt){    
   var key = evt.keyCode;
   keys[key] = false;
}
1 голос
/ 08 марта 2011

Вы можете обнаружить события нажатия клавиш и нажатия клавиш, а также вести список нажатых клавиш.Добавьте ключ в список на keydown и удалите их из списка на keyup.Оттуда вы можете просто проверить список в соответствующее время (например, в конце события нажатия клавиши).

Помните, что каждое нажатие клавиши - это свое собственное уникальное событие.Несколько нажатых клавиш не связаны между собой естественным образом, поэтому вам нужно создать этот список самостоятельно.

Я предлагаю вам использовать такую ​​библиотеку, как jQuery, и могут быть плагины, которые могут помочь.Тем не менее, общая концепция, которую я описал, не должна быть слишком жесткой, чтобы реализовать себя.Дайте мне знать, поможет ли псевдокод уточнить алгоритм, который я описываю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...