检查按下了哪个鼠标按钮,如果是双击
Check which mouse button was pressed and if its a double click?
我有一个画布,它监听鼠标按下事件。。。但我想通过听按钮以及它们是否是双击来让它变得更详细。
我有这个:
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
,然后在代码中使用该信息。
相关文章:
- 如果函数返回True,则显示Javascript按钮
- 如果未按下该按钮,则在30秒内自动执行该功能
- 如果选择单选按钮,则显示字段
- 如何在jquery中检测浏览器的后退按钮,如果有任何对话框打开,请关闭它
- 如果选择单选按钮,则显示表单
- 如果ng单击附加到提交按钮,则表单未验证
- 如果选择了特定的单选按钮,如何显示窗体
- 如果没有历史记录,我如何隐藏图像或按钮onclick=;历史.go(-1);
- 自动单击按钮(如果没有类)
- 单选按钮(如果单击)
- Knockout JS单选按钮如果所有值都为true,则选择最后一个按钮
- 使用if-else-if-true检查(验证)单选按钮如果未检查则无警报必须检查警报
- jQuery"加载更多的帖子”;隐藏按钮如果最后一个帖子
- Salesforce按钮:如果机会阶段不相等,如何显示错误“;Closed Won”;
- 如何禁用/启用带有复选框的按钮(如果选中)
- yes no单选按钮-如果有两个或多个yes答案,则显示文本
- 使复选框不需要启用按钮(如果隐藏)
- 如何禁用按钮如果我在下拉列表中选择否
- 禁用Asp.net单选按钮列表中的其他单选按钮(如果其中一个已选中)
- 序列化单选按钮|如果未选择单选按钮,则不提交