evgeniy8705
@evgeniy8705
Повелитель вселенной

Как сделать чтобы работала обработка событий при сочетании клика мыши и нажатия клавиши?

document.onmousedown = function(event) {
	document.onkeydown = function(evt) {
		if (evt.keyCode == 81) {
			console.log("Hello");
		}
	};
};


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

Наоборот получилось, а вот как сделать сначала клик а потом нажатие клавиши?
document.onkeydown = function(evt) {
	if (evt.keyCode == 81) {
		document.onmousedown = function(event) {
			console.log("Hello");
		};
	}
};

document.onkeyup = function(evt) {
	document.onmousedown = null;
}
  • Вопрос задан
  • 158 просмотров
Решения вопроса 1
miraage
@miraage
Старый прогер
Если нужные нативные обработчики - думаю, догадаетесь, как сделать.

jQuery(function ($) {
  var $doc = $(document);
  var isDown = false;
  
  $doc.on('mousedown', function () {
    isDown = true;
  });
  
  $doc.on('mouseup', function () {
    isDown = false;
  });
  
  $doc.on('keypress', function (event) {
    if (isDown) {
      console.log(
        'pressed via mousedown',
        event.which
      );
    }
  });
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы