Это может быть нетривиальным, потому что дело в том, что когда срабатывает первое событие onTaskClick
, нет никакого способа определить, закончил ли пользователь щелчок мышью или он собирается сделать еще один щелчок, который затем вызовет двойной щелчок событие. Поэтому, если вы захватываете события в браузере, двойной щелчок всегда будет выглядеть как последовательность «щелчок» - «щелчок» - «двойной щелчок».
Так что, если вам нужно, чтобы щелчок не срабатывал при двойных щелчках, может потребоваться некоторое время ожидания в обработчике onclick, чтобы проверить, следует ли следующий щелчок / двойной щелчок (200-300 мс, точное значение может варьироваться в зависимости от браузера и ОС). Таким образом, когда пользователь делает один щелчок, обработчик 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;
});
Пожалуйста, отметьте этот фрагмент , который демонстрирует, как он работает.