我有一个用于监听鼠标按下事件的画布...但是我想通过聆听按钮以及它们是否是双击而更加详细。
我有这个:
canvas.addEventListener("mousedown", what_button, false);
然后是一个名为what_button:
的函数 function what_button(e){
//check which button on the mouse
//was it a double click ?
}
这在JavaScript中是否可行?
答案 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
,然后在代码中使用该信息。