2016-11-18 32 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