我不认为'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
没有检测到双击。
有一个''dblclick''事件,您可以将处理程序绑定到... – 2012-04-01 23:04:59
正确,但那样会调用鼠标+ dbl单击? – Sir 2012-04-01 23:06:39
您的应用程序需要用鼠标右键进行双击?我想不出任何程序,右键双击有一个功能... – 2012-04-01 23:09:22