检查按下了哪个鼠标按钮,如果是双击

Check which mouse button was pressed and if its a double click?

本文关键字:按钮 如果 双击 鼠标 检查      更新时间:2023-09-26

我有一个画布,它监听鼠标按下事件。。。但我想通过听按钮以及它们是否是双击来让它变得更详细。

我有这个:

 canvas.addEventListener("mousedown", what_button, false);

然后是一个名为what_button:的函数

 function what_button(e){
 //check which button on the mouse
 //was it a double click ?
 }

这在JavaScript中可能吗?

我认为'mousedown'事件无法预测是否会发生第二次鼠标单击。您必须同时绑定到'click''dblclick',然后在双击时覆盖行为。。。

在处理程序中,e.button属性告诉您单击了哪个按钮:

0 => left
1 => middle
2 => right

这对我有效:

var dblclick;
var timeout;
$( document ).on( 'click', function ( e ) {
    if ( !timeout ) {
        timeout = setTimeout( function () {
            timeout = 0;           
            handler( dblclick ? 'dblclick' : 'click' );
            dblclick = false;
        }, 200 );
    }
});
$( document ).on( 'dblclick', function ( e ) {
    dblclick = true;
});
// this function receives either 'click' or 'dblclick'
// and performs the corresponding action
function handler ( type ) {
    alert( type );
}

现场演示:http://jsfiddle.net/f73tY/1/

我使用延迟值200。我发现(至少在我的机器上)100的值不会检测到双击。

使用click/dblclick:

var button = document.getElementById('myButton');
button.ondblclick = function() {
    doubleClick = true;
};​

您甚至可以添加一个normalClick = false,然后在代码中使用该信息。