Как отследить нажатия одной кнопки а потом другой?
либо через флаг, что капс был нажат, либо при нажатии капса помещать значение в пул нажатых клавиш и смотреть, что значение пула последнее или имеется в пуле.
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 комментария

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

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

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

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

Веб разработчик
Можно проверять нажатие кнопки мыши, задать промежуток времени, которое определяет, что пользователь удерживает кнопку, в примере 1 сек
const timeout = 1000; let idTimeout; window.addEventListener('mousedown', function() < idTimeout = setTimeout(function() < // Кнопка нажата более 1 секунды >, timeout); >); window.addEventListener('mouseup', function() < clearTimeout(idTimeout); >);
Ответ написан более года назад

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

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

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

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

Уверенный пользователь клавиатуры
В своё время решал подобную задачу. Попробуйте решить через флаг и условие, выполняйте действие. Когда действие выполнено, меняете flag = true;
let flag = false; if(args) < //Ваш код flag = true; >
upd: К тому, что написал я, примите к сведению ту информацию, на которую указал Сергей Сергей. В целом, это должно решить вашу задачу.