2016-11-18 69 views
0
document.onkeyup = function(event) { 

     //ctrl+r to refresh page, but also to set lettersGuessed by player to ''. 
     //the 'r' was being recorded as a guess. 
     if (event.keyCode == 73 && event.ctrlKey) { 
      startGame(); 
     } 

     //allows only A-Z on keyboard to be registered as answers 
     else if (event.keyCode >= 65 && event.keyCode <= 90) { 

      var key = event.key; 
      console.log(computerChoice); 
      if (guesses != 0) { 
        lettersGuessed += key + ', '; 
        if (key == computerChoice) { 
         wins++; 
         display.innerHTML = "You WIN! The computer chose " + computerChoice + 
              "<br/> To play again press any button."; 
         startGame(); 
        } 
        else if (key != computerChoice && guesses != 0) { 
         guesses--; 
         displayResults('Keep Guessing!', key, 'Not Telling!' , guesses); 
        } 
       } 
       else if (guesses == 0) { 
        losses++; 
        display.innerHTML = "You LOSE! The computer chose: " + computerChoice + 
             "<br/> To play again press any button."; 
        startGame(); 
       } 
      } 

     //this runs when ctrl+r is hit. shouldn't this not run? for some reason its reading the ctrl part 
     //when I press ctrl+r. 
     else { 
      alert("Only A-Z allowed."); 
     } 
    } 

此功能是运行我的心灵游戏的主要代码。玩家有10条生命来猜测随机字母。在if语句中,我设置了ctrl + r的键码来设置球员lettersGuessed ='',我知道这也是刷新页面,我不介意。我必须这样做,因为我的else if语句记录了'r'作为用户的猜测。但是,现在当按下ctrl时,会在底部激活我的else语句以提醒“仅允许A-Z”。通灵游戏事件键 - Javascript

由于我的初始if语句,底部的else语句不应该运行吗?在警报熄灭之前,我正在给ctrl + r做些事情。

我想要做的是没有警报关闭特别是当Ctrl + R命中。

+0

喂杰夫,欢迎StackOverflow上。你发布了一个问题让我们回答,真是太好了。我们很乐意提供帮助。但是,要做到这一点,您需要帮助我们来帮助您。正如你现在的问题所说,它不是很有用。你给了我们一段代码和几行解释你的问题的解释。这还不够。请花时间解释您的代码的作用,失败的地方以及您希望如何更详细地进行操作,以便我们能够更好地帮助您。谢谢,希望你对StackOverflow有一个很好的体验。同时,我会尽快发布答案。 –

+0

嗨Aadit,在我的代码中添加了一些评论以及关于这个问题的更多信息。希望澄清一些事情。 :) –

回答

0

ctrl + r默认为浏览器中的页面重新加载。为了完整性检查,请尝试其他任何keyCode,如i

还我会建议使用event.which作为后备选项:

event.keyCode || event.which == 73 && event.ctrlKey