我正在構建一個在按下空格鍵時會投擲炸彈的游戲,問題是當我按下此鍵時游戲結束,因為它解釋按下空格鍵以單擊先前單擊的按鈕開始游戲,一旦游戲開始就會變為結束游戲.
我該如何解決這個問題?這是我的意思的一個例子:
var spacebar = false, btn = document.getElementById('btn');
btn.addEventListener('click', () => { console.log('test') })
// ---- Spacebar functionality ----
function handleKeyDown(e){
e.keyCode === 32 ? spacebar = true : null
}
function handleKeyUp(e){
e.keyCode === 32 ? spacebar = false : null
}
document.addEventListener("keydown", handleKeyDown, false)
document.addEventListener("keyup", handleKeyUp, false)
1) Click the button
<br>
2) Now without clicking press the spacebar
<br><br>
<button id="btn">Click me to console log</button>
uj5u.com熱心網友回復:
嘗試使用document.activeElement.blur();并失去對按鈕的關注。
var spacebar = false, btn = document.getElementById('btn');
btn.addEventListener('click', () => {
console.log('test');
document.activeElement.blur(); //<----- Here my edit
})
// ---- Spacebar functionality ----
function handleKeyDown(e){
e.keyCode === 32 ? spacebar = true : null
}
function handleKeyUp(e){
e.keyCode === 32 ? spacebar = false : null
}
document.addEventListener("keydown", handleKeyDown, false)
document.addEventListener("keyup", handleKeyUp, false)
1) Click the button
<br>
2) Now without clicking press the spacebar
<br><br>
<button id="btn">Click me to console log</button>
uj5u.com熱心網友回復:
您可以通過洗掉對“keyup”事件的按鈕回應來做到這一點
<button id="btn" onkeyup="event.preventDefault()">Click me to console log</button>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/420409.html
標籤:
上一篇:如何在表單中預填充資料,并且表單可以使用react功能組件進行編輯
下一篇:每次單擊按鈕時如何更改變數的值
