鼠标是否已关闭?不依赖于事件

时间:2015-12-11 21:14:39

标签: javascript jquery debugging

这是一个经常被问到的问题,但有一点麻烦。

我需要弄清楚鼠标是否被按下。好的。我做了一些研究。我发现这个可爱的问题/答案: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询问这个问题。

1 个答案:

答案 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