Есть ли способ использовать элемент innerHTML в качестве номера keyCode? - PullRequest
0 голосов
/ 29 марта 2019

В заголовке сказано, мне было интересно, возможно ли использовать innerHTML в качестве значения keyCode, например:

if (event.keyCode == 65) { 
        thing1();
        thing2();
}

Есть ли способ получить элемент innerHTML и использовать его вместо "65"? Например, вы создаете кликабельное поле, в котором регистрируется любая нажатая клавиша и преобразует ее в число кодов клавиш для использования вместо «65»?

1 Ответ

1 голос
/ 29 марта 2019

Да, это возможно.Поскольку вы пометили этот вопрос только с помощью jQuery, вам лучше использовать метод text() вместо html() или innerHTML, а затем преобразовать его в целое число, прежде чем проводить сравнение.Попробуйте это:

var keycode = parseInt($('span').text(), 10);

$('#foo').on('keypress', function(e) {
  if (e.keyCode === keycode) {
    console.log(`You pressed '${String.fromCharCode(keycode)}', keycode: ${e.keyCode}`);
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>
  Keycode: <span>97</span>
</p>

<p>
  Press 'a' in this field:
  <input type="text" id="foo" />
</p>
...