Событие JavaScript MouseUp, вызываемое при нажатии клавиши

Поэтому в моем конкретном проекте я хочу отслеживать все кнопки мыши и клавиши клавиатуры, которые в данный момент удерживаются. У меня все работает достаточно хорошо, за исключением одной проблемы: событие mouseup вызывается при любом нажатии клавиши, даже если я не отпустил кнопку мыши.

Как я могу остановить это? Или, может быть, как я могу вспомнить, что мышь на самом деле не отпускали, а на самом деле была нажата клавиша, которая вызывала событие mouseup? Если кто-то может найти решение как в обычном Js, так и в JQuery, это было бы здорово, спасибо.

РЕДАКТИРОВАТЬ: Я только что понял, что это происходит только в том случае, если один использует сенсорную панель вместо отдельной мыши.

(кстати, я использую Chrome)

Вот пример кода, который поможет продемонстрировать это:

var canvas = document.createElement('canvas');
document.getElementById('main').appendChild(canvas);
var context = canvas.getContext('2d');

canvas.width = 300;
canvas.height = 300;
canvas.style.backgroundColor = 'GREY';

// mouse button pressed
canvas.addEventListener('mousedown', function(ev) {
  console.log("Mouse down!");
  document.getElementById('text').innerHTML = "Mouse down! ...pressing a key will make me go away :(";
});

// mouse button let go
canvas.addEventListener('mouseup', function(ev) {
  console.log("Mouse up!");
  document.getElementById('text').innerHTML = "Mouse up!";
});
<div id="text">
</div>
<div id="main">
</div>

0 ответов

Другие вопросы по тегам