Events 如何防止在dhtmlx中双击时发生单击事件

Events 如何防止在dhtmlx中双击时发生单击事件,events,dhtmlx,Events,Dhtmlx,我有一个甘特图附加到onTaskClick和onTaskDblClick事件。 当我双击它时,它也会触发onTaskClick事件。 如何防止这种情况发生?这一点很重要,因为当第一个onTaskClick事件触发时,无法确定用户是否完成了单击,或者是否将再次单击,然后调用双击事件。所以,如果您在浏览器中捕获事件,双击将始终看起来像“单击”-“单击”-“双击”序列 因此,如果您需要onclick不触发双击,您可能需要onclick处理程序中的一些超时,以便检查next click/doublecl

我有一个甘特图附加到onTaskClick和onTaskDblClick事件。 当我双击它时,它也会触发onTaskClick事件。
如何防止这种情况发生?

这一点很重要,因为当第一个onTaskClick事件触发时,无法确定用户是否完成了单击,或者是否将再次单击,然后调用双击事件。所以,如果您在浏览器中捕获事件,双击将始终看起来像“单击”-“单击”-“双击”序列

因此,如果您需要onclick不触发双击,您可能需要onclick处理程序中的一些超时,以便检查next click/doubleclick是否跟随200-300ms,确切值可能因浏览器和操作系统而异。这样,当用户执行一次单击时,onclick处理程序将在一段延迟后执行,如果是双击,则单击处理程序的超时将被删除,因此只有onTaskDblClick处理程序将运行

var a;
gantt.attachEvent("onTaskClick", function(id,e){
  setTimeout(function() {
    if (a) {
      return false;
    } else {
      gantt.message("onTaskClick")
      return true;
    }
  }, 200)
  a = 0;
});


gantt.attachEvent("onTaskDblClick", function(id,e){
    gantt.message("onTaskDblClick")
    a=1;
    return true;
});
请检查这个演示它是如何工作的