如何在一个元素上同时使用 onclick 和 ondblclick?

23 浏览
0 Comments

如何在一个元素上同时使用 onclick 和 ondblclick?

我在页面上有一个元素,我需要附加onclick和ondblclick事件处理程序。当发生单击时,它应该执行与双击不同的操作。当我开始尝试使其工作时,我的头就开始晕了。显然,当您双击时,onclick将始终触发。所以我尝试使用基于超时的结构,如下所示...

window.onload = function() {
  var timer;
  var el = document.getElementById('testButton');
  el.onclick = function() {
    timer = setTimeout(function() { alert('Single'); }, 150);        
  }
  el.ondblclick = function() {
    clearTimeout(timer);
    alert('Double');
  }
}

但是我得到了不一致的结果(在IE8中使用)。它有时会正常工作,但有时我会收到两次"Single"的警报。

有人以前做过吗?有没有更有效的方法?

0