JackShcherbakov
@JackShcherbakov

Почему не работает код?

Здравствуйте! Не могу понять не работает почему код :
spoiler
function runOnKeys(func, ...codeN){
    let pressed = [];
    window.onkeydown = function(e){
      pressed.push(e.which);
      for(let i = 0; i<codeN.length; i++){
        console.log(codeN);
        console.log(pressed)
        if(!(codeN[i] in pressed)) return false;
      }
      alert();
    }
    window.onkeyup = function(e){
      delete pressed[e.which] ;   
    }
  }
runOnKeys(
  function() { alert("Привет!") },
  "Q".charCodeAt(0),
  "W".charCodeAt(0)
);

Он должен вызывать определённую функцию, если одновременно зажаты клавиши с определёнными кодами.
Заранее спасибо!
  • Вопрос задан
  • 850 просмотров
Решения вопроса 1
rockon404
@rockon404
Frontend Developer
function runOnKeys(func, ...codeN){

  var pressed = [];
    
  window.onkeydown = function(e){
    pressed.push(e.which);
    for(var i = 0; i<codeN.length; i++){
      if(pressed.indexOf(codeN[i]) == -1) return false;
    }
    func();
    pressed = [];
  }
    
  window.onkeyup = function(e){
    pressed = [];   
  }
}

runOnKeys(
  function() { alert("Привет!") },
  "Q".charCodeAt(0),
  "W".charCodeAt(0)
);

Демо: https://jsfiddle.net/r6wyfdkc/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы