jQuery:在鼠标移动事件期间检测按下的鼠标按钮

2024-03-16

我试图检测用户在 jQuery 下的 mousemove 事件期间按下哪个鼠标按钮(如果有),但我得到的结果不明确:

no button pressed:      e.which = 1   e.button = 0
left button pressed:    e.which = 1   e.button = 0
middle button pressed:  e.which = 2   e.button = 1
right button pressed:   e.which = 3   e.button = 2

Code:

<!DOCTYPE html>
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>

<input id="whichkey" value="type something">
<div id="log"></div>
<script>$('#whichkey').bind('mousemove',function(e){ 
  $('#log').html(e.which + ' : ' +  e.button );
});  </script>

</body>
</html>

如何区分按下鼠标左键和根本没有按下鼠标左键?


您可以编写一些代码来跟踪鼠标左键的状态,并且通过一个小函数您可以在mousemove event.

要跟踪 LMB 的状态,请将事件绑定到文档级别mousedown and mouseup并检查e.which设置或清除标志。

预处理是由tweakMouseMoveEvent()我的代码中的函数。要支持 IE 版本 e.which本来是1(无按钮或LMB)并且左键当前状态没有按下,只是设置e.which to 0,并将其用于您的其余部分mousemove检查是否没有按下任何按钮的事件。

The mousemove我的示例中的处理程序只是调用传递当前事件变量的调整函数,然后输出e.which.

$(function() {
    var leftButtonDown = false;
    $(document).mousedown(function(e){
        // Left mouse button was pressed, set flag
        if(e.which === 1) leftButtonDown = true;
    });
    $(document).mouseup(function(e){
        // Left mouse button was released, clear flag
        if(e.which === 1) leftButtonDown = false;
    });

    function tweakMouseMoveEvent(e){
        // Check from jQuery UI for IE versions < 9
        if ($.browser.msie && !e.button && !(document.documentMode >= 9)) {
            leftButtonDown = false;
        }

        // If left button is not set, set which to 0
        // This indicates no buttons pressed
        if(e.which === 1 && !leftButtonDown) e.which = 0;
    }

    $(document).mousemove(function(e) {
        // Call the tweak function to check for LMB and set correct e.which
        tweakMouseMoveEvent(e);

        $('body').text('which: ' + e.which);
    });
});

在这里尝试现场演示:http://jsfiddle.net/G5Xr2/ http://jsfiddle.net/G5Xr2/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery:在鼠标移动事件期间检测按下的鼠标按钮 的相关文章

随机推荐