2010-07-30 52 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>