Есть ли способ использовать jQuery или vanilla JS, чтобы я мог передать 2 нажатия клавиш?

Пример: когда я нажимаю клавишу пробела в качестве прослушивателя событий, клавиши ввода и Shift должны быть нажаты и переданы вместе. Мне удалось запустить код, но одним нажатием клавиши. Может ли кто-нибудь пролить свет на это?

$(document).keydown(function(event) {
    var keycode = (event.keyCode ? event.keyCode : event.which);
    if (keycode == 13) {

        document.addEventListener('keydown', function(ev) {
            console.log(ev.which);
        });

        var e = new KeyboardEvent('keydown', {
            'keyCode': 190,
            'which': 190
        });
        console.log(e);
        document.dispatchEvent(e);
    }
});
1
Yoelvis Guerra 21 Апр 2020 в 23:39
Почему вы не вызываете реальную функцию, которую пытаетесь вызвать? Это немного похоже на отправку факса по электронной почте.
 – 
isherwood
21 Апр 2020 в 23:44

1 ответ

Чтобы добавить модификаторы, такие как shift, ctrl или alt, к событию KeyPress, вы можете передать эти свойства во втором аргументе конструктора. См. документацию здесь.

// ex. Shift+Enter
var e = new KeyboardEvent("keydown", {
  key: "Enter",
  shiftKey: true,
});
1
joshwilsonvu 21 Апр 2020 в 23:49