Переменная переключения Javascript при нажатии клавиши «c»

avatar
Aidan Young
9 августа 2021 в 00:12
52
1
-2

Мне интересно, как, используя только javascript, я могу переключать переменную с именем x, если нажата клавиша "c". Я хочу, чтобы при нажатии клавиши «c» переменная изменялась с 0 на 1, а когда клавиша «c» поднималась, она возвращалась к 0. Как это можно сделать? Я уже объявил переменную и назвал ее x.

let x = 0;
Источник

Ответы (1)

avatar
Phil
9 августа 2021 в 00:25
5

Добавить два прослушивателя событий на document, один для keydown, другой для keyup.

Обратите внимание, что keydown будет срабатывать неоднократно, поэтому, когда вы переключаете x на 1, вы должны удалить прослушиватель событий, чтобы избежать этого. Прослушиватель может быть повторно добавлен, когда x переключается обратно на 0.

let x = 0

const toggle = ({ code, type }) => {
  if (code === "KeyC") { // check for the "c" key
    x ^= 1 // toggle `x`
    
    console.log(type, "set x to", x)
    
    return true // return a flag so we know when x is modified
  }
}

const keydownHandler = e => {
  if (toggle(e)) {
    // remove the event listener to avoid repeats
    document.removeEventListener("keydown", keydownHandler)
  }
}

document.addEventListener("keydown", keydownHandler)

document.addEventListener("keyup", e => {
  if (toggle(e)) {
    document.addEventListener("keydown", keydownHandler)
  }
})