У меня есть игра, которую я сделал с помощью HTML5, CSS и JavaScript. У меня есть HTML-теги изображений стрелок джойстика. Я хотел бы, чтобы пользователи могли щелкать мышью изображения стрелок на моем джойстике и работать так, как если бы стрелки на клавиатуре были нажаты. Как заставить keyCode 39 срабатывать при щелчке по изображению стрелки вправо? Я написал такой код, но он не работает:
var $rt_arrow = $('.rt_arrow')
$rt_arrow.on('click' , function (e) {
e.keyCode == 39
})
Возможный дубликат Можно ли программно моделировать события нажатия клавиш?
goRight и вызовите ее как на keyDown, так и на mouseDown. Нет причин, по которым щелчок мыши запускает ключевое событие.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я считаю, что это то, что вы ищете http://www.port135.com/2017/12/24/how-to-simulate-keyboard-key-press-in-javascript-using-jquery/
Я не тестировал это, поэтому я не уверен на 100%, хотя это кажется довольно простым.
Так что вместо:
e.keyCode == 39
Ставить:
jQuery.event.trigger({ type: 'keydown', which: 39 });
Вместо того, чтобы размещать что-то, что еще не было протестировано и может вводить в заблуждение, сначала проверьте это самостоятельно.
В этом случае вы не хотите запускать событие клавиатуры, вы просто хотите, чтобы событие мыши запускало то же действие, что и событие клавиатуры.
Это сделает ваш код более модульным и создаст функции для каждого действия, после чего вы можете заставить свои обработчики вызывать требуемую функцию:
onkeydown = e => {
if (e.key === 'ArrowLeft') goLeft();
else if (e.key === 'ArrowRight') goRight();
// ...
};
onclick = e => {
if (e.target === left_arrow) goLeft();
else if (e.target === right_arrow) goRight();
// ...
};
Возможный дубликат вызвать нажатие клавиши при событии щелчка