所以在我的特定项目中,我想跟踪当前按下的所有鼠标按钮和键盘按键。我有一切工作得很好,除了我有一个问题:鼠标事件在任何按键上调用,即使我没有松开鼠标按钮。
如何阻止这种情况发生?或者,或许,我怎么能记住鼠标实际上没有被释放,但事实上已经按下了一个键,导致鼠标事件被触发。如果有人能够在常规J和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>