最近项目中遇到了在同一DOM元素上需要添加 onclick 和 ondblclick 2个事件,如果按照正常的方式添加处理,结果发现只会执行 onclick,
而不会执行 ondblclick;这时我们需要对2个事件的处理函数稍作处理就可以实现2个事件并存了,代码如下:
<script type="text/javascript">
var clickTimer = null;
function _click(){
if(clickTimer) {
window.clearTimeout(clickTimer);
clickTimer = null;
}
clickTimer = window.setTimeout(function(){
// your click process code here
alert("你单击了我");
}, 300);
}
function _dblclick(){
if(clickTimer) {
window.clearTimeout(clickTimer);
clickTimer = null;
}
// your click process code here
alert("你双击了我");
}
</script>
<button onclick="_click();" ondblclick="_dblclick();">单击或双击我</button>处理思想就是:利用定时器延迟执行onclick事件,这样在双击过程中会取消中途触发的单击事件。
转自http://my.oschina.net/jsan/blog/123181

本文介绍了一种实现在同一DOM元素上同时响应单击和双击事件的方法。通过使用定时器延迟执行单击事件处理函数,在双击时能够及时取消单击事件,从而确保两个事件都能正确触发。





