这是一个经常被问到的问题,但有一点麻烦。
我需要弄清楚鼠标是否被按下。好的。我做了一些研究。我发现这个可爱的问题/答案:JavaScript: Check if mouse button down?给出了如何跟踪鼠标是否被按下的多个例子。对于我的用途,我已经把这个片段紧张了:
$(document).mousedown(function(){
Game.isMouseDown = true;
});
$(document).mouseup(function(){
Game.isMouseDown = false;
Game.lastSquare = [];
});
除少数情况外,它的效果相当不错。我此刻正在进行大量调试,所以我几乎总是打开调试器。当我将鼠标悬停在调试器上并释放时(例如当我使用断点,或者只是快速移动鼠标时),将鼠标悬停在游戏div上而不保持任何鼠标按钮会产生与按住鼠标按钮相同的结果。 / p>
我需要防止这种情况发生,我相信这样做的方法是在按住鼠标而不是询问由事件设置的Game.isMouseDown变量时请求DOM。但通过我的所有研究,我无法找到如何向DOM询问这个问题。
答案 0 :(得分:0)
检查mousemove
事件,该事件本身捕获了按下了多少按钮。
$(document).mousemove(function(e){
if(e.buttons > 0){
Game.isMouseDown = true;
} else {
Game.isMouseDown = false;
}
});
https://developer.mozilla.org/en-US/docs/Web/Events/mousemove