我不認爲'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