检查按下了哪个鼠标按钮以及是否双击了?

时间:2012-04-01 23:02:54

标签: javascript

我有一个用于监听鼠标按下事件的画布...但是我想通过聆听按钮以及它们是否是双击而更加详细。

我有这个:

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

然后是一个名为what_button:

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

 }

这在JavaScript中是否可行?

2 个答案:

答案 0 :(得分:1)

我不认为'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的值没有检测到双击。

答案 1 :(得分:0)

使用click / dblclick

var button = document.getElementById('myButton');

button.ondblclick = function() {
    doubleClick = true;
};​

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