2010-07-30 29 views
3

我在學習Javascript。我注意到,如果我多次點擊一個對象,很快就會有一些點擊被捕獲爲雙擊。只能以單擊方式捕獲JavaScript中的所有點擊?在Javascript中單擊是否可以處理雙擊?

感謝

+3

看那'mouseDown'事件而不是'click'事件。 – 2010-07-30 12:39:04

+0

在IE上,如果我快速點擊鼠標左鍵兩次,事件是:onmousedown,onmouseup,onclick,onmouseup,ondblclick。 – fatcatz 2010-07-31 08:01:05

+0

我需要捕獲:onmousedown,onmouseup,onclick,onmousedown,onmouseup,onclick。如果我禁用ondblclick然後我得到:onmousedown,onmouseup,onclick,onmouseup。 onmousedown缺失。 – fatcatz 2010-07-31 08:01:53

回答

2

使用jQuery,您可以創建文檔上的雙擊事件處理程序,然後阻止默認行爲:

$(document).dblclick(function(e) { 
    e.preventDefault(); 
    alert('Handler for .dblclick() called and ignored.'); 
}); 

Double click in the example看到的結果。

+0

我想先學習沒有任何庫的Javascript。 – fatcatz 2010-07-31 08:04:12

0

有兩種方法可以解決這個問題。

1)使用「return false;」雙擊事件聲明。 實施例:

<button id="your button id" onclick="yourfuntion()" ondblclick="return false;" >My Button</button> 

2)禁用按鈕/對象在主功能的開始和在函數結束時再次啓用它。

實施例:

<button id="your button id" onclick="yourfuntion()">My Button</button> 

<script> 

function yourfuntion() { document.getElementById("your button id").disabled = true; 
//your javascript code 

document.getElementById("your button id").disabled = false;} 

</script>