First solution
Create a variable to store mouse state, then update it when mouse enters and leaves:
let mouseIsOver = false
const content = document.getElementById('main_content')
content.addEventListener('mouseenter', () => {
mouseIsOver = true
})
content.addEventListener('mouseleave', () => {
mouseIsOver = false
})
document.body.addEventListener('keydown', event => {
// When key pressed, check mouseIsOver
if (mouseIsOver && event.which === 40) {
alert('Button Down!')
}
})
Second solution
Attach and Detach KeyPress listener when mouse enters and leaves:
const content = document.getElementById('main_content')
function keyPressHandler() {
if (event.which === 40) {
alert('Button Down!')
}
}
content.addEventListener('mouseenter', () => {
document.body.addEventListener('keypress', keyPressHandler)
})
content.addEventListener('mouseleave', () => {
document.body.removeEventListener('keypress', keyPressHandler)
})