Перейти к содержимому

Как отследить нажатие на кнопку js

  • автор:

Javascript: Отслеживание нажатия клавиш на странице

Иногда нужно отреагировать на нажатие клавиш не на конкретонм элементе или в поле ввода, а на странице. Ниже приведу простенький сниппет на данную тему. Он просто отслеживает нажатие сочетания клавиш (горячих клавиш) ctrl + enter.

Данный пример просто выводит алерт с «ОК», дальнейшая реализация может быть на Ваше усмотрение, например можно сделать всплывающее окно для «Если Вы нашли неточность в описании, то напишите нам.»

$(document).keydown(function (e) < if (e.ctrlKey && e.keyCode == 13) < alert("OK"); >>);

Пометки: Если Вы нашли неточность в описании, то напишите нам (можно нажать ctrl + enter).

js как определить какая кнопка нажата

Для определения нажатой клавиши можно использовать событие keydown и свойство event.key .

document.addEventListener('keydown', function (event)  if (event.key === 'Enter')  console.log('Нажата клавиша Enter'); > else if (event.key === 'Escape')  console.log('Нажата клавиша Escape'); > >); 

В этом примере мы добавили обработчик события keydown на документ. Когда клавиша нажата, функция обработчика будет вызвана и передаст объект события event . Затем мы проверим, какая клавиша была нажата, используя свойство event.key , и выведем сообщение в консоль.

Вы можете использовать любые другие клавиши, проверяя их с помощью if / else if конструкций.

Как отследить нажатия одной кнопки а потом другой?

либо через флаг, что капс был нажат, либо при нажатии капса помещать значение в пул нажатых клавиш и смотреть, что значение пула последнее или имеется в пуле.

29 мар 2020 в 18:52
необходимо отслеживать нажатие на элементе какого типа (input, p, div. )?
29 мар 2020 в 19:30

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Вы можете отследить нажатие caps-lock и нужных клавиш alt + ctrl через keydown .
Так же он работает и с keyup .
При использовании же keyPress Вы не получите event о нажатии.

Соответственно, чтобы проверить нажатие ctrl + alt при включенном Caps-lock — Вы можете воспользоваться следующим решением:

 document.addEventListener('keydown', function(event) < var caps = event.getModifierState && event.getModifierState('CapsLock'); if(caps)< if(event.key == 'Alt' && event.ctrlKey)< console.log('Включен Caps-lock, зажат Ctrl и нажат Alt'); >> >);

Отслеживать
ответ дан 29 мар 2020 в 20:52
Denis640Kb Denis640Kb
14k 5 5 золотых знаков 21 21 серебряный знак 46 46 бронзовых знаков

    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

JavaScript: Информация О Нажатой Клавише ����

В данной статье рассмотрим, как получить информацию о нажатой клавише клавиатуры или кнопки мыши, а также как выполнять необходимые действия (нужный код) при нажатии определенных сочетаний клавиш или кнопок (правый/левый клик мыши).

Чтобы получить информацию, о том какая кнопка клавиатуры нажимается в данный момент, воспользуемся следующим кодом:

function keyPress(e) < let keyNum; if (window.event) < keyNum = window.event.keyCode; >else if (e) < keyNum = e.which; >console.log(keyNum); > document.onkeydown = keyPress;

Номер кнопки находится в переменной keyNum

Узнать keyCode кнопки можете здесь:

Выполнение кода в зависимости от нажатой клавиши

Давайте теперь будем выполнять необходимые действия в зависимости от нажатой клавиши

Для этой задачи воспользуемся оператором switch .

В конструкции case укажите номер кнопки, для которой будет выполнен необходимый код.

document.onkeydown = function (e) < switch (e.keyCode) < case 49: console.log("Нажата единица"); break; case 50: console.log("Нажата двойка"); break; case 32: console.log("Нажат пробел"); break; case 9: console.log("Нажат tab"); break; case 16: console.log("Нажат shift"); break; default: console.log(e.keyCode); >>;

Вместо console.log выполняйте необходимые действия.

Если была нажата клавиша, которой нет в списке, то для неё можете выполнить другой код. Писать в default.

Как отследить комбинации нажатых клавиш

Отследить нажатие CTRL, SHIFT и ALT можно также другими способами (данный способ необходим чтобы отследить комбинации).

Например, отследить нажатие CTRL можно следующим образом:

document.addEventListener("keydown", function (e) < if (e.ctrlKey) < console.log("Был нажат CTRL"); document.getElementById("btnClick").textContent = "CTRL"; >>);

Используя всю ранее полученную информацию, определим нажатую комбинацию клавиш, например, CTRL + F5 :

document.addEventListener("keydown", function (e) < e.preventDefault(); if (e.ctrlKey && event.key == "F5") < console.log("Была нажата комбинация клавиш CTRL + F5"); >>);

Как вы могли заметить, обращаться к клавишам в JavaScript можно несколькими способами. Например, следующие строки кода позволяют нам получить один и тот же результат:

event.key == "F5" аналогично e.keyCode == 116 

Мы рассмотрели, как получить информацию о нажатой клавише на клавиатуре. Теперь давайте рассмотрим, как обработать события мыши.

Информация о нажатой кнопке мыши JavaScript

Рассмотрим, как определить какая кнопка мыши нажимается над объектом: левая кнопка, правая или дабл клик.

Выполнение кода при клике левой кнопкой мыши:

document.querySelector(selector).onclick = function (e) < if (e.which == 1) < console.log("Нажата левая кнопка мыши"); >>

Выполнение кода при клике правой кнопкой мыши:

document.querySelector(selector).oncontextmenu = function (e)

Выполнение кода при двойном клике по кнопке:

document.querySelector(selector).ondblclick = function ()

Надеюсь, вам понравилась данная информация. Если вам интересна тема web-разработки, то можете следить за выходом новых статей в Telegram.

Поделиться с друзьями:

Статьи из данной категории:

  • JavaScript: Работа с Массивами
  • Наличие Динамически Добавленного Элемента
  • Стилизация Input File
  • Предзагрузка Картинок — Предварительная Загрузка Изображений на JavaScript
  • Стилизация Скролла
  • События Формы

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *