Как разместить функцию для щелчка и функцию для двойного щелчка по одному и тому же элементу?
Я пытаюсь реализовать две разные функции для элемента: одну после одного щелчка мыши, а другую — после двух щелчков мышью. Я использую setTimeout, чтобы определить, когда выполняется один щелчок, но в этом случае обе функции в конечном итоге выполняются, потому что setTimeout продолжает отсчет, поэтому у меня возникла идея остановить время, как только будет выполнен второй щелчок , но после этого setTimeout перестает работать и все видится как двойной щелчок, поэтому я все моделировал, пока это не выглядело вот так
Я думаю, там и так достаточно нефункциональных и ненужных вещей, но это были мои попытки достичь этой цели. Кто-нибудь знает, как решить?
2 ответа
Если не считать того факта, что уже существует событие двойного щелчка, на которое указал наш друг выше...
Двойной щелчок почти всегда вызывает одиночный щелчок перед срабатыванием двойного щелчка, потому что большинство пользователей не могут идеально синхронизировать две кнопки, чтобы предотвратить срабатывание левой кнопки, поэтому это плохая идея, и по этой причине ее почти никто не использует. событие dblclick.
Поэтому лучшим решением для обеспечения функций двух кнопок мыши без конфликтов является использование левой и правой кнопок мыши...
element.addEventListener('click',function_A); // left click
element.addEventListener('contextmenu',function_B); // right click
Хотя я понятия не имею, как правый или двойной щелчок будет работать на Macintosh, поскольку я никогда им не пользовался! :)