如何使用Javascript检查当前鼠标按钮状态

如何使用Javascript检查当前鼠标按钮状态,javascript,mousedown,mouseup,Javascript,Mousedown,Mouseup,我希望鼠标处于向下状态或向上状态 document.onmousemove = mouseMove; document.onmousedown = mouseDown; document.onmouseup = mouseUp; function mouseMove(ev) { mouseState=""; //How can I know the state button of mouse button from here if(mouseState=='do

我希望鼠标处于向下状态向上状态

document.onmousemove = mouseMove;
document.onmousedown = mouseDown;
document.onmouseup   = mouseUp;

function mouseMove(ev) {

    mouseState="";
    //How can I know the state button of mouse button from here 
    if(mouseState=='down') {
        console.log('mouse down state')
    }

    if(mouseState=='up')  {
        console.log('mouse up state')
    }
}

function mouseDown(ev) {
    console.log('Down State you can now start dragging');
    //do not write any code here in this function
}

function mouseUp(ev) {
    console.log('up state you cannot drag now because you are not holding your mouse')
    //do not write any code here in this function
} 

当我移动鼠标时,程序现在应该在控制台上向上或向下显示所需的mouseState值

您只需为它创建一个变量即可

document.onmousemove = mouseMove;
document.onmousedown = mouseDown;
document.onmouseup   = mouseUp;
var mouseState = "up";

function mouseMove(ev) {

    //How can I know the state of mouse from here 
    if(mouseState=='down') {
        console.log('mouse down state')
    }

    if (mouseState=='up')  {
        console.log('mouse up state')
    }
}

function mouseDown(ev) {
    mouseState = "down";
    console.log('Down State you can now start dragging');
    //do not write any code here in this function
}

function mouseUp(ev) {
    mouseState = "up";
    console.log('up state you cannot drag now because you are not holding your mouse')
    //do not write any code here in this function
}

您应该通过将“mousemove”上的事件登录到控制台来查看它。可能有一个属性显示鼠标的状态,就像keypress事件有一个属性告诉您是否按下了shift按钮一样。但这可能不兼容跨浏览器。

您可以检查
MouseEvent.which
属性

function mouseMove(ev) {
    if(ev.which==1) {
        console.log('mouse down state with left click');
    } else if(ev.which==3)  {
        console.log('mouse down state with right click');
    } else {
        console.log('mouse update');
    } 
}

这一问题与环境有关。IE也出现了同样的问题。有什么解决办法吗?我想知道鼠标按钮的状态,因为这个问题。非常感谢。它真的对我有效。对不起,现在我不使用这个解决方案,因为它不能解决IE。还有其他想法吗?Bzzt。Mousevent.which属性说明哪个按钮导致了最近的“mousedown”或“mouseup”事件。它被简单地复制到“mousemove”事件中。它不反映鼠标按钮的当前状态。它的名字似乎表明它确实如此——我热切地希望它如此——但事实并非如此。(这不仅仅是IE或浏览器版本问题:-)