I'm using pure JavaScript to create a game. In the game, the user can choose from three weapons, which are three buttons. The last clicked 'weapon' button will have the focus status (so I could get weaponbutton.value
). Then, the user presses the 'start' button to start the game.
But when the 'start' button is pressed, the focus status automatically changed to the 'start' button. I couldn't get the weaponbutton.value
. So how can I get the weaponbutton.value
? Thank you very much.
My code is below:
const weapon1 = document.getElementById("weapon1");
const weapon2 = document.getElementById("weapon2");
const weapon3 = document.getElementById("weapon3");
var playerATT = 10;
var weaponValue;
if(weapon1.focus() === true){
weaponValue = 3;
}
else if(weapon2.focus() === true) {
weaponValue = 6;
}
else if(weapon3.focus() === true) {
weaponValue = 9;
}
StartButton.onclick = function(){
playerATT = playerATT weaponValue;
}
seeking out ways to get the weaponbutton.value
, then pass the value to the startButton.
CodePudding user response:
const weapon1 = document.getElementById("weapon1");
const weapon2 = document.getElementById("weapon2");
const weapon3 = document.getElementById("weapon3");
var weaponValue;
document.getElementById('start').addEventListener('click', function(){
console.log('weapon value', weaponValue)
})
// I'd use "click" instead of "focus", but I don't know if that's something particular to your game.
weapon1.addEventListener('focus', () => { weaponValue = 3 })
weapon2.addEventListener('focus', () => { weaponValue = 6 })
weapon3.addEventListener('focus', () => { weaponValue = 9 })
<button id="weapon1" type="button">Weapon 1</button>
<button id="weapon2" type="button">Weapon 2</button>
<button id="weapon3" type="button">Weapon 3</button>
<button id="start" type="button">Start</button>
CodePudding user response:
That's not what focus
does — focus focuses an element, and returns undefined
. You're probably mixing it up with the focus
event. Instead what would make sense is setting a variable based on which button is clicked.
const weapon1 = document.getElementById('weapon1')
const weapon2 = document.getElementById('weapon2')
const weapon3 = document.getElementById('weapon3')
let playerATT = 10
let weaponValue = 3
weapon1.onclick = () => { weaponValue = 3 }
weapon2.onclick = () => { weaponValue = 6 }
weapon3.onclick = () => { weaponValue = 9 }
StartButton.onclick = () => { playerATT = weaponValue }