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

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

  • автор:

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

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

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
14.1k 5 5 золотых знаков 22 22 серебряных знака 46 46 бронзовых знаков

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

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

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

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

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

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

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 конструкций.

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

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

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

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

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

Как отследить ЗАЖАТИЕ кнопки javascript?

Сейчас пишу игру, нужно отследить зажал ли пользователь кнопку. onclick не помогает, он отслежывает только когда нажали на кнопку.

  • Вопрос задан более года назад
  • 555 просмотров

4 комментария

Простой 4 комментария

hahenty

onmousedown, onmouseup
изучать события браузера

teaCode

Максим Бенец @teaCode Автор вопроса
Сергей Сергей, Всё равно не работает, то же самое что onclick. Есть ли другой способ?

hahenty

других способов нет.

WblCHA

Максим Бенец, может стоит для начала сделать что-то попроще?
Решения вопроса 0
Ответы на вопрос 2

dedalik

Веб разработчик

Можно проверять нажатие кнопки мыши, задать промежуток времени, которое определяет, что пользователь удерживает кнопку, в примере 1 сек

const timeout = 1000; let idTimeout; window.addEventListener('mousedown', function() < idTimeout = setTimeout(function() < // Кнопка нажата более 1 секунды >, timeout); >); window.addEventListener('mouseup', function() < clearTimeout(idTimeout); >);

Ответ написан более года назад

WblCHA

mouseIsDown можно убрать.

dedalik

WbICHA, Когда выполняется setTimeout событие mousedown может быть или не быть. С помощью переменной мы точно знаем, выполняется в данный момент mousedown или нет.

WblCHA

Radiks Alijevs, то есть ты хочешь сказать, mouseIsDown может быть фолс во время вызова калбека таймаута?

dedalik

Да, ты прав, там же clearTimeout. Исправил

Mecitan

Уверенный пользователь клавиатуры

В своё время решал подобную задачу. Попробуйте решить через флаг и условие, выполняйте действие. Когда действие выполнено, меняете flag = true;

let flag = false; if(args) < //Ваш код flag = true; >

upd: К тому, что написал я, примите к сведению ту информацию, на которую указал Сергей Сергей. В целом, это должно решить вашу задачу.

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

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